【问题标题】:Append new column with different string values to different dataframes all at once?一次将具有不同字符串值的新列追加到不同的数据帧?
【发布时间】:2020-08-07 01:20:26
【问题描述】:

我要做的就是将一个新列“county”附加到以下每个数据框,以便 alameda_ 数据框有一个新列 ['county'],其中所有行都显示“alameda”,coco_ 数据框有一个新列 ['county'],其中所有行都显示“coco”等。最终,每一行都标有适当的县,目标是将所有数据框连接在一起。

当前代码如下所示,但显然 for 循环不正确。如何遍历数据框列表和字符串列表?

dfs = [alameda_,coco_,marin_,napa_,solano_,sonoma_,sf_,sm_,sc_]
county_labels = ['alameda','coco','marin','napa','solano','sonoma','sf','sm','sc']

for i in dfs:
    i['county'] = county_labels

可复制的例子:

alameda = pd.DataFrame({'col1': ['foo','bar','baz'], 'col2': ['foo','bar','baz'], 'col3': ['foo','bar','baz']})
coco = pd.DataFrame({'col1': ['foo','bar','baz'], 'col2': ['foo','bar','baz'], 'col3': ['foo','bar','baz']})
marin = pd.DataFrame({'col1': ['foo','bar','baz'], 'col2': ['foo','bar','baz'], 'col3': ['foo','bar','baz']})

new_df = pd.concat(dfs)

提前致谢!!

【问题讨论】:

    标签: python pandas loops


    【解决方案1】:

    试试这个,你可以使用 python zip function 压缩迭代器并同时迭代它们

    dfs = [alameda_,coco_,marin_,napa_,solano_,sonoma_,sf_,sm_,sc_]
    country_labels = ['alameda','coco','marin','napa','solano','sonoma','sf','sm','sc']
    
    for i,j in zip(dfs,country_labels):
        i['county'] = j
    

    【讨论】:

      【解决方案2】:

      使用枚举:

      import pandas as pd
      
      alameda = pd.DataFrame({'col1': ['foo','bar','baz'], 'col2': ['foo','bar','baz'], 'col3': ['foo','bar','baz']})
      coco = pd.DataFrame({'col1': ['foo','bar','baz'], 'col2': ['foo','bar','baz'], 'col3': ['foo','bar','baz']})
      marin = pd.DataFrame({'col1': ['foo','bar','baz'], 'col2': ['foo','bar','baz'], 'col3': ['foo','bar','baz']})
      
      dfs = [alameda,coco,marin]
      county_labels = ['alameda','coco','marin']
      
      for i, df in enumerate(dfs):
          df['county'] = county_labels[i]
      
      print(alameda.head())
      

      (print(alameda.head()) 的输出:

        col1 col2 col3   county
      0  foo  foo  foo  alameda
      1  bar  bar  bar  alameda
      2  baz  baz  baz  alameda
      

      【讨论】:

        猜你喜欢
        • 2020-02-06
        • 1970-01-01
        • 2021-09-20
        • 2021-11-14
        • 2020-09-11
        • 2021-11-01
        • 1970-01-01
        • 2015-04-18
        • 1970-01-01
        相关资源
        最近更新 更多