为了上帝的爱!我有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
答案 0 :(得分:0)
您将需要
first
变量并将其设置为True
。第一次遍历ou dict()
时,我们没有任何要合并数据框的内容,因此我们只将value
分配给变量first
变量设置为False
,以便下次我们将数据帧合并在一起df.merge()
并将left_index
和right_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()