pandas - 如何从结果中删除左侧合并的右侧索引?

标签 pandas merge

在下面的示例中,我可以使合并正确运行,但是如何也没有第二个索引打印?我是否必须添加单独的代码行:

df_merge = df_merge.drop(columns='cities')  

我不能选择要合并到左侧数据集中的列吗?如果 df2 有 30 列而我只想要其中 10 列怎么办?

import pandas as pd

df1 = pd.DataFrame({
    "city": ['new york','chicago', 'orlando','ottawa'],
    "humidity": [35,69,79,99]
})


df2 = pd.DataFrame({
    "cities": ['new york', 'chicago', 'toronto'],
    "temp": [1, 6, -35]
})

df_merge = df1.merge(df2, left_on='city', right_on='cities', how='left')
print(df_merge)

**output**

   index      city  humidity    cities  temp
0      0  new york        35  new york   1.0
1      1   chicago        69   chicago   6.0
2      2   orlando        79       NaN   NaN
3      3    ottawa        99       NaN   NaN

最佳答案

合并

先更改列的名称

df1.merge(df2.rename(columns={'cities': 'city'}), 'left')

       city  humidity  temp
0  new york        35   1.0
1   chicago        69   6.0
2   orlando        79   NaN
3    ottawa        99   NaN
<小时/>

如果您需要明确说明要合并的内容:

df1.merge(df2.rename(columns={'cities': 'city'}), how='left', on='city')
<小时/>

加入

先设置右侧索引
'left' 是默认值。

df1.join(df2.set_index('cities'), 'city')

       city  humidity  temp
0  new york        35   1.0
1   chicago        69   6.0
2   orlando        79   NaN
3    ottawa        99   NaN
<小时/>

map

制作一本字典。

df1.assign(temp=df1.city.map(dict(df2.values)))

       city  humidity  temp
0  new york        35   1.0
1   chicago        69   6.0
2   orlando        79   NaN
3    ottawa        99   NaN
<小时/>

少一点可爱,多一点露骨

df1.assign(temp=df1.city.map(dict(df2.set_index('cities').temp)))

关于pandas - 如何从结果中删除左侧合并的右侧索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50373955/

相关文章:

python - 使用字符串和数字格式化 pandas 列

python - 向 pandas 数据框添加新列以指示特定列中的重复项

svn - 除了从分支合并外,如何锁定 SVN 主干?

javascript - 将数组合并为一个 [ ["510"、 "511"、 "512"、 "513"]、 ["514"、 "515"]]

python - 如何使用 Pandas 计算滚动排名相关性

python - 使用 bool 函数在 bool 值上拆分 pandas 数据框

python-3.x - 如何删除数据框中空值数量超过 x 的行?

tfs - 在 TFS 中查找合并候选者

python - 连接数据帧的片段

python - 在 matplotlib 中合并两个已经存在的图(png 文件)