我目前有n个具有ID和X值的数据帧(dfs [n])和一个带ID的数据帧(df)。
如果X值的ID与df的ID匹配,并且添加' X值n'我想将d值添加到df中的新列。作为列名。
for n in range(len(files)):
if dfs[n]['ID'] == df['ID']:
df = df.join(dfs[n]['X values'], on='ID', rsuffix = int(r))
print(df)
我尝试过这段代码但是没有用。
感谢您的帮助!
答案 0 :(得分:1)
设置
dfs = [pd.DataFrame({'ID': [1, 2, 3], 'X values': list('XYZ')}) for _ in range(4)]
df = pd.DataFrame(dict(ID=[1, 2, 3]))
<强>解决方案强>
在pd.concat
pd.DataFrame.set_index
df.join(
pd.concat(
[d.set_index('ID')['X values'] for d in dfs],
axis=1, keys=list(range(len(dfs)))
), on='ID')
ID 0 1 2 3
0 1 X X X X
1 2 Y Y Y Y
2 3 Z Z Z Z