迭代pandas中的所有数据框



我正在尝试做类似的事情…

我的意图是为inpandas创建一个循环,它可以遍历所有数据帧,过滤所有大于4的行。如果满足条件,它将为我提供一个包含列名和ID的新列。类似这样的内容(列输出):

输入图片描述

我正在尝试使用这段代码,但它不工作…

list = []
for col in df.columns:
for row in df[col]:
if row>4:
list.append(df(row).index, col)

有人能帮我吗?我会非常感谢你的……

这是一个有pandas.DataFrame.locpandas.Series.ge的命题:

collected_vals = []​
for col in df.filter(like="X").columns:
collected_vals.append(df.loc[df[col].ge(4), "ID"].astype(str).radd(f"{col}, "))
#if list​ is needed
from itertools import chain​
l = list(chain(*[ser.tolist() for ser in collected_vals]))
#if Series is needed
ser = pd.concat(collected_vals, ignore_index=True)
#if DataFrame is needed
out_df = pd.concat(collected_vals, ignore_index=True).to_frame("OUTPUT")

#输出
print(out_df)
OUTPUT
0  X40, 1100
1  X40, 1200
2   X50, 700
3   X50, 800
4   X50, 900

使用的输入:

print(df)
X40  X50    ID
0    1    5   700
1    2    6   800
2    1    8   900
3    3    2  1000
4    4    3  1100
5    6    1  1200

相关内容

  • 没有找到相关文章

最新更新