【问题标题】:How to transform data frames into one big dataframe?如何将数据帧转换为一个大数据帧?
【发布时间】:2019-05-23 21:37:14
【问题描述】:

我编写了一个程序(下面的代码),它为文件夹中的每个文件提供了一个数据框。数据框中是文件中的年度季度和计数(季度在文件中出现的频率)。循环中一个文件的输出如下所示:

2008Q4    230
2009Q1    186
2009Q2    166
2009Q3    173
2009Q4    246
2010Q1    341
2010Q2    336
2010Q3    200
2010Q4    748
2011Q1    625
2011Q2    690
2011Q3    970
2011Q4    334
2012Q1    573
2012Q2     53

如何创建一个大数据框,其中汇总文​​件夹中所有文件的季度计数?

path = "crisisuser"
os.chdir(path)
result = [i for i in glob.glob('*.{}'.format("csv"))]
os.chdir("..")
for i in result:
    df = pd.read_csv("crisisuser/"+i)
    df['quarter'] = pd.PeriodIndex(df.time, freq='Q')
    df=df['quarter'].value_counts().sort_index()

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    我认为您需要将所有Series 附加到列表中,然后使用concatsum 每个索引值:

    out = []
    for i in result:
        df = pd.read_csv("crisisuser/"+i)
        df['quarter'] = pd.PeriodIndex(df.time, freq='Q')
        out.append(df['quarter'].value_counts().sort_index())
    
    s = pd.concat(out).sum(level=0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-21
      • 2016-12-04
      • 2018-10-11
      • 2017-02-25
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多