考虑以下数据框,d1为学生信息,d2为科目成绩
>>> data = [['Alice',18]]
>>> d1 = pd.DataFrame(data,columns=['Name','Age'])
>>> d1
Name Age
0 Alice 18
>>> data2 = [['Science','A'],['Math','C'],['English','B']]
>>> d2 = pd.DataFrame(data2, columns=['Subject','Grade'])
>>> d2
Subject Grade
0 Science A
1 Math C
2 English B
我想把d1和d2结合起来
Name Age Subject Grade
0 Alice 18 Science A
1 Alice 18 Math C
2 Alice 18 English B
最佳答案
与merge
+assign
+drop
一起使用交叉连接-如果希望在d1
中合并多行,则可以使用此解决方案:
df = pd.merge(d1.assign(A=1), d2.assign(A=1), on='A').drop('A', 1)
print (df)
Name Age Subject Grade
0 Alice 18 Science A
1 Alice 18 Math C
2 Alice 18 English B
另一种
concat
和reindex
的解决方案:df = pd.concat([d1.reindex(d2.index, method='ffill'), d2], axis=1)
print (df)
Name Age Subject Grade
0 Alice 18 Science A
1 Alice 18 Math C
2 Alice 18 English B
关于python - 通过复制1行并追加到n行数据帧来组合1行数据帧和n行数据帧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46631280/