我需要检查八组功能(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