这是正确运行的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)我希望yearFrom列只出现一次,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)
答案 0 :(得分:1)
我认为您需要set_index
来按索引对齐数据:
Class r = loadClass(String className, boolean resolveIt);
第二名:
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())