合并没有标题的数据框

时间:2015-11-10 15:08:13

标签: python pandas merge

我有人。数据帧(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']

1 个答案:

答案 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