首页 > 解决方案 > 如何迭代熊猫中的列标题和行值?

问题描述

对于数据帧 df,我想完成以下操作:(1)遍历列标题并将每个带有“Vol”的标题更改为 Vol_Adj,以及(2)遍历与这些标题对应的值,然后除以它们由标题为“eTIV”的列中的相应值(对于每一行)

这是我尝试过的:

for col in df.columns:
    if 'Vol' in col:
        df[col] = df.col / df.eTIV
        df= df.rename(index=str, columns={col: col + "_Adj"})

我收到以下错误:AttributeError:“DataFrame”对象没有属性“col”。

分解代码时,这将单独工作:

for col in df.columns:
    print(col)

这也是如此:

df['one'] = df.one / df.five

就像这样:

df= df.rename(index=str, columns={"three": "three_Adj"})

但是这些命令没有集成在 for 循环中。

标签: python-3.xpandasdataframe

解决方案


解决了:

for key,value in df.iteritems():
    if 'Vol' in key:
        key = key + '_Adj'
        value = value / df.five
        print(key,value)

推荐阅读