我有人。数据帧(df_A和df_B):
df_A
Col_A Col_B
23 34
12 18
df_B
23 12
45 10
我想根据df_A中的Col_A和df_B中的第1列合并它们。请注意,df_B没有任何标题行。我该怎么做呢?一个简单的合并就是:
df_A.merge(df_B, on='Col_A')
然而,在这种情况下这不起作用因为df_B没有Col_A作为列。
- 根据@ EdChum的建议进行编辑:
TO CLARIFY:我想合并两个数据帧。一个有标题,另一个没有。如何在没有标题的数据框上指定连接列?我可以按位置/索引指定吗?
df_B.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1 entries, 0 to 0
Data columns (total 2 columns):
23 1 non-null int64
12 1 non-null int64
dtypes: int64(2)
memory usage: 24.0 bytes
df_B.columns.tolist()
['23', '12']
df_A.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 2 entries, 0 to 1
Data columns (total 2 columns):
Col_A 2 non-null int64
Col_B 2 non-null int64
dtypes: int64(2)
memory usage: 48.0 bytes
df_A.columns.tolist()
['Col_A', 'Col_B']
答案 0 :(得分:1)
您可以按df_B.columns = ['Col_B', 'Col_A']
设置列名称。然后,您可以合并数据帧。
print df_A
Col_A Col_B
0 23 34
1 12 18
print df_B
0 1
0 23 12
1 45 10
df_B.columns = ['Col_A', 'Col_B']
print df_B
Col_A Col_B
0 23 12
1 45 10
out = df_A.merge(df_B, on='Col_A')
print out
Col_A Col_B_x Col_B_y
0 23 34 12