我的代码有一点问题。我想在整个数据框列上创建一个“for”循环。我的解决方案有一个静态列表,我尝试创建一个动态列表,放入“df_list_cols= df.shape[1]”,但显然它无法迭代 Int 对象。有什么想法可以创建动态解决方案吗?
我上面的解决方案, 预先感谢您!
df_list = [0,1,2,3,4]
for i in df_list_cols:
do stuff
最佳答案
迭代列
你很接近。为 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})
关于python - 如何迭代数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54112624/