考虑以下数据框,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

另一种concatreindex的解决方案:
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/

10-12 17:02
查看更多