如何在数据框列上进行迭代

时间:2019-01-09 14:43:04

标签: python python-3.x pandas

我的代码有一点问题。我想在所有dataframe列上创建一个“ for”循环。我的解决方案有一个静态列表,我试图创建一个动态列表,将“ df_list_cols = df.shape [1]”放进去,但是显然它不能在Int对象上进行迭代。有什么想法可以创建动态解决方案吗?

我上面的解决方案, 预先谢谢你!

df_list = [0,1,2,3,4]
for i in df_list_cols:
    do stuff

2 个答案:

答案 0 :(得分:1)

迭代列

您很近。为Pandas数据帧定义in运算符的方式,迭代pd.DataFrame对象与遍历其列是等效的。

df = pd.DataFrame({'A': [1, 2], 'B': [3, 4], 'C': [5, 6]})

for col in df:
    print(col)
# A
# B
# C

将函数应用于每一列

在许多情况下,您可能希望使用pd.DataFrame.apply对每一列应用相同的功能:

df = df.apply(lambda x: x*2)

print(df)
#    A  B   C
# 0  2  6  10
# 1  4  8  12

如果您对每列使用不同的功能,则等效为pd.DataFrame.transform

df = df.transform({'A': lambda x: x*2, 'B': lambda x: x*3, 'C': lambda x: x*4})

答案 1 :(得分:1)

您可以遍历df.columns

button为您提供了数据框的列的列表。

df.columns