这是正确工作的Concat方法。
pd.concat([myd['a'], myd['b']], axis=1)
YearFrom cnt YearFrom cnt
0 1001 9 1001 2
1 2010 3 2010 1
2 2011 199787 2011 127485
3 2012 214548 2012 144348
4 2013 991 2013 1396
5 2014 236596 2014 159302
6 2015 241611 2015 164767
7 2016 195123 2016 162352
1(我希望"年度"列仅出现一次,并且CNT应该由cnt_a和cnt_b
(例如2(另一个问题是词典中存储了几个这样的数据框。我希望以下理解能够起作用。但是遇到错误:
pd.concat([[myd[i] for i in myd]], axis=1)
TypeError: cannot concatenate a non-NDFrame object
更新:我需要在最终数据框架中添加一列和一行。
这在最后添加了总列。没有问题:(
df['total']=df.sum(axis=1)
这完全返回我需要的东西,但不包括索引。我需要将此行命名为" sum"。
df.append(df.sum(numeric_only=True), ignore_index=True)
我认为您需要set_index
来对齐数据:
myd = myd.set_index('YearFrom')
pd.concat([myd['a'], myd['b']], axis=1)
,第二:
df = pd.concat([v.set_index('yearFrom') for k, v in myd.items()], axis=1, keys=myd.keys())
对于总行需要:
df.loc['total']=df.sum()