Python 从df创建一个包含两个要素的新数据框,其中多个要素包含多个要素,其中行以一个要素为条件
我需要检查八组特征(区域1,区域2…等)的正常性,并需要为每个特征创建一个新的df;新的df将有两列,一列表示“数量”,另一列表示区域。我有一个热编码的功能,所以,需要每个新的df是“数量”和“区域_x”,其中“区域_x”的行有一个1。我尝试了很多方法来包含jupyter的更多表格,但都没有成功。请让我知道,如果你需要更多的信息来帮助解决这个问题Python 从df创建一个包含两个要素的新数据框,其中多个要素包含多个要素,其中行以一个要素为条件,python,pandas,dataframe,Python,Pandas,Dataframe,我需要检查八组特征(区域1,区域2…等)的正常性,并需要为每个特征创建一个新的df;新的df将有两列,一列表示“数量”,另一列表示区域。我有一个热编码的功能,所以,需要每个新的df是“数量”和“区域_x”,其中“区域_x”的行有一个1。我尝试了很多方法来包含jupyter的更多表格,但都没有成功。请让我知道,如果你需要更多的信息来帮助解决这个问题 Quantity Region_0 Region_1 Region_2 Region_3 Region_4 Reg
Quantity Region_0 Region_1 Region_2 Region_3 Region_4 Region_5 Region_6 Region_7 Region_8
我尝试在定义新df的同一行上放置条件
r0df=copy.deepcopy(q2df[[“数量”,“区域0”==“1”])
KeyError:“[False]不在索引中”
我需要的结果是一个新的数据框,带有“数量”和一个区域,其中观察值只是区域中具有1的行
(这个代码片段只是为了给我在python中使用的表提供一个更好的示例;我使用了这个工具:)
QuantityRegion\u 1Region\u 2Region\u 3450113114001130100
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'])
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'])
谢谢anky_91!我有工作,但有困难,让新的df返回观察值在地区列==1。这将为每一行返回True或False
r0df=d[“df_Region_0”][“Region_0”]==1
,我想我可以过滤它,但我希望在一行中完成所有操作。也许我需要把它变成一个函数,我在上面添加了一个代码,你可以运行它,然后输出一个清晰的table@Donum我已经编辑了代码。希望现在能有所帮助……)谢谢@anky_91!这很有效,我感谢你的帮助!谢谢anky_91!我有工作,但有困难,让新的df返回观察值在地区列==1。这将为每一行返回True或Falser0df=d[“df_Region_0”][“Region_0”]==1
,我想我可以过滤它,但我希望在一行中完成所有操作。也许我需要把它变成一个函数,我在上面添加了一个代码,你可以运行它,然后输出一个清晰的table@Donum我已经编辑了代码。希望现在能有所帮助……)谢谢@anky_91!这很有效,我感谢你的帮助!