python - 如何迭代数据框列

标签 python python-3.x pandas

我的代码有一点问题。我想在整个数据框列上创建一个“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/

相关文章:

python - Pandas 在数据帧上合并,同时保持相同的行数

python - 如何删除 Tkinter OptionMenu 小部件的边框

python - 根据列中的匹配值以及匹配值的最小/最大值时间戳过滤数据帧

python - 如何按日期时间分组的 pandas 数据框中的状态更改列进行聚合

python - 检查日期是否在另一个数据框中并设置一个新列

python - 我怎样才能匹配这个字符串?

python - 如何在 conftest.py 中检索 py.test 的标记?

Python ctypes create_string_buffer()错误0xC0000005

python - 使用列表中的搜索词从文本中获取字数的最快方法?

Python Selenium - ResourceWarning : Enable tracemalloc to get the object allocation traceback