创建来自DF的两个功能的新数据框,其中许多在一个功能上进行了条件



我需要检查八组功能(region_1,region_2 ...等(的正态性,并且需要为每个功能创建一个新的DF;新的DF将有两列,一个用于"数量",另一个用于该地区。我有一个旋转编码的功能,因此需要每个新的DF为"数量"one_answers" region_x",其中" region_x"的行有一个1.我尝试了许多方法来包括从jupyter到徒劳无功。请让我知道您是否需要更多信息来解决此问题。

Quantity    Region_0    Region_1    Region_2    Region_3    Region_4    Region_5    Region_6    Region_7    Region_8

我尝试过将条件放置在我定义新DF的同一条线上的变体。

r0df = copy.deepcopy(q2df[["Quantity", "Region_0" =="1"]])

keyError:'[false]不在索引中'

我需要结果是具有"数量"和一个区域的新数据框,其中观察结果仅是具有1。

的区域中的行

(此代码段只是为了给我在Python工作的表提供更好的示例;我使用了此工具:https://senseful.github.io/text-table/(

<table><tbody><tr><th>Quantity</th><th>Region_1</th><th>Region_2</th><th>Region_3</th></tr><tr><td>45</td><td>0</td><td>1</td><td>1</td></tr><tr><td>36</td><td>1</td><td>1</td><td>1</td></tr><tr><td>40</td><td>0</td><td>1</td><td>1</td></tr><tr><td>30</td><td>1</td><td>0</td><td>0</td></tr></tbody></table>

iiuc,您可以创建一个数据框的dict:

m=df.set_index('Quantity')
n=m[m.eq(1)]
d={'df_'+str(i):n[i].dropna().to_frame() for i in n.columns}

输出:

{'df_Region_1':           Region_1
 Quantity          
 36             1.0
 30             1.0, 'df_Region_2':           Region_2
 Quantity          
 45             1.0
 36             1.0
 40             1.0, 'df_Region_3':           Region_3
 Quantity          
 45             1.0
 36             1.0
 40             1.0}

然后,您可以调用字典的每个键来查看DF,例如:

print(d['df_Region_1'])

          Region_1
Quantity          
36             1.0
30             1.0

相关内容