[英]How can I join two dataframes in pandas that have different no of rows and different columns?
我正在尝试通过合并 2 个由不同行数组成的数据帧来构建 pandas DataFrame。 我在下面附上了我的代码。 我试图将这两个数据帧连接在一起,但我收到一条错误消息: KeyError: 'Number of Mutations'
#!/usr/bin/env python
import pandas as pd
df1= pd.DataFrame({"Mutations": ["A>T", "A>G", "A>C", "T>A", "T>C", "T>G", "C>A", "C>T", "C>G", "G>A", "G>T", "G>C"],
"Number of Mutations": [213, 659, 281, 204, 627, 208, 351, 1004, 360, 1054, 323, 351]})
df2= pd.DataFrame({"Number of Bases":["A = 42239", "T = 55005", "G = 46060" , "C = 45422"]})
mdf=df1.merge(df2, on= "Number of Mutations" , how="outer")
print(mdf)
我不知道你为什么首先要组合这些 df,因为这些行根本没有连接。 但是,如果您只想将它们彼此对齐,则需要使用pd.concat
out = pd.concat([df1, df2], axis=1)
print(out)
Mutations Number of Mutations Number of Bases
0 A>T 213 A = 42239
1 A>G 659 T = 55005
2 A>C 281 G = 46060
3 T>A 204 C = 45422
4 T>C 627 NaN
5 T>G 208 NaN
6 C>A 351 NaN
7 C>T 1004 NaN
8 C>G 360 NaN
9 G>A 1054 NaN
10 G>T 323 NaN
11 G>C 351 NaN
如果有不同的索引并且您只想在开始时使用 df2 直到没有更多数据,那么您需要在连接它们之前使用 reset_index() 。
out = pd.concat([df1.reset_index(drop=True), df2.reset_index(drop=True)], axis=1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.