我需要检查八组特征(Region_1,Region_2 ...等)的正常性,并需要为每组特征创建一个新的df;新的df将具有两列,一列用于“数量”,另一列用于“地区”。我已经对这些功能进行了一次热编码,因此,需要将每个新的df分别设为“ Quantity”和“ 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]不在索引中>
我需要将结果设为带有“ Quantity”和Region的新数据框,其中观察结果只是Region中具有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>
答案 0 :(得分:0)
IIUC,您可以创建一个数据帧字典,例如:
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