连接数据框字典中的101列

时间:2019-01-29 00:41:11

标签: python pandas loops dictionary machine-learning

为了上帝的爱!我有101个单列功能,我只想加入,合并或连接它们,以便它们都具有第一帧的索引。我已经把所有帧都放在字典里了!我认为那将是困难的部分。 下面,我手动完成了我想做的事情。我想做的是遍历字典并获取所有101列。

a=ddict['/Users/cb/Dropbox/Python Projects/Machine Learning/Data Series/Full Individual Stock Data/byd/1byd.xls']
b=ddict['/Users/cb/Dropbox/Python Projects/Machine Learning/Data Series/Full Individual Stock Data/byd/2byd.xls']
c=ddict['/Users/cb/Dropbox/Python Projects/Machine Learning/Data Series/Full Individual Stock Data/byd/3byd.xls']

d=a.join(b['Value'],lsuffix='_caller')
f=d.join(c['Value'],lsuffix='_caller')
f

2 个答案:

答案 0 :(得分:0)

您将需要

  1. 创建一个first变量并将其设置为True。第一次遍历ou dict()时,我们没有任何要合并数据框的内容,因此我们只将value分配给变量
  2. first变量设置为False,以便下次我们将数据帧合并在一起
  3. df.merge()并将left_indexright_index参数设置为True,以便我们的联接发生在这些索引上。

下面是示例代码。

输入

import pandas as pd
df = pd.DataFrame({'col1': [1,2,3,4]})
df1 = pd.DataFrame({'col2': [11,12,13,14]})
df2 = pd.DataFrame({'col3': [111,112,113,114]})

d = {'df':df, 'df1':df1, 'df2':df2}


first = True
for key, value in d.items():
    if first:
        n = value
        first = False
    else:
        n = n.merge(value, left_index=True, right_index=True)

n.head()

输出

   col1  col2  col3
0     1    11   111
1     2    12   112
2     3    13   113
3     4    14   114

此处是指向merge()的链接,以获取更多信息link

答案 1 :(得分:0)

我想补充一点,如果要将字典的键保留为最终数据帧的列标题,则只需在末尾添加以下内容即可:

n.columns = d.keys()