我有两个数据框:
a b c d e f
2 4 6 6 7 1
4 7 9 9 5 8
7 9 6
5 8 2
现在我要创建一个新的数据框,如下所示:
a b c d e f
2 4 6 6 7 1
4 7 9 9 5 8
也就是说,我只想要第二个数据帧的行,直到行数与第一个数据帧匹配为止。
答案 0 :(得分:2)
concat
有join = 'inner'
pd.concat([x,y],join = 'inner', axis=1)
Out[184]:
a b c d e f
0 2 4 6 6 7 1
1 4 7 9 9 5 8
答案 1 :(得分:1)
import pandas as pd
df1=pd.DataFrame({'a': [2, 4], 'b': [4, 7], 'c': [6, 9]})
df2=pd.DataFrame({'d': [6, 9, 7, 5], 'e': [ 7, 5, 9, 8], 'f': [1,8,6, 2]})
result = pd.concat([df1,df2],axis=1, join_axes=[df1.index])
print(result)
请参阅熊猫文档。真的很好。在下面添加了链接。
答案 2 :(得分:0)
>>> import pandas as pd
>>> x = pd.DataFrame({'a': [2, 4], 'b': [4, 7], 'c': [6, 9]})
>>> y = pd.DataFrame({'d': [6, 9, 7, 5], 'e': [ 7, 5, 9, 8], 'f': [1,8,6, 2]})
>>> x
a b c
0 2 4 6
1 4 7 9
>>> y
d e f
0 6 7 1
1 9 5 8
2 7 9 6
3 5 8 2
>>> pd.concat([ x, y], axis=1).dropna()
a b c d e f
0 2.0 4.0 6.0 6 7 1
1 4.0 7.0 9.0 9 5 8
答案 3 :(得分:0)
使用pandas.concat
和切片,我们可以执行以下操作:
a = pd.DataFrame(np.random.randint(10, size=(2,3)), columns=["a", "b", "c"])
b = pd.DataFrame(np.random.randint(10, size=(4,3)), columns=["d", "e", "f"])
所以两个DataFrame看起来像:
然后运行:
result = pd.concat([a, b[:len(a)]], axis=1)
结果是:
答案 4 :(得分:0)
您可以使用join来连接数据框
df1 = pd.DataFrame({'a': [2, 4], 'b': [4, 7], 'c': [6, 9]})
df2= pd.DataFrame({'d': [6, 9, 7, 5], 'e': [ 7, 5, 9, 8], 'f': [1,8,6, 2]})
df1.join(df2)
a b c d e f
0 2 4 6 6 7 1
1 4 7 9 9 5 8