Concat数据帧有效

时间:2017-06-27 11:06:42

标签: pandas

这是正确运行的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)

1 个答案:

答案 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())
相关问题