【发布时间】:2022-01-10 06:02:33
【问题描述】:
我有多个包含多个列的数据框,如下所示:
DF =
A B C metadata_Colunm
r1 6 3 9 r1
r2 2 1 1 r2
r3 5 7 2 r3
如何使用 for 循环遍历每一列以创建一个新数据帧,然后删除每个新数据帧的值低于 5 的行? 结果应如下所示:
DF_A=
A metadata_Colunm
6 r1
5 r1
DF_B=
B metadata_Colunm
7 r3
DF_C=
C metadata_Colunm
9 r1
到目前为止,我所做的是列出我将使用的列(所有不包括元数据),然后将这些列作为新的数据框。由于我还需要保留元数据,因此我将元数据列添加为新数据框的一部分:
DF = DF.drop("metadata_Colunm")
ColList = list(DF)
for item in ColList:
locals()[f"DF_{str(item)}"] = DF[[item, "metadata_Colunm"]]
locals()[f"DF_{str(item)}"] = locals()[f"DF_{str(item)}"].drop(locals()[f"DF_{str(item)}"][locals()[f"DF_{str(item)}"].item > 0.5].index, inplace=True)
但是使用这个我得到“AttributeError:'DataFrame'对象没有属性'item'。
任何有关使这项工作的建议或任何其他解决方案,将不胜感激!
提前致谢!
【问题讨论】: