python - 使用附加条件合并两个数据框

标签 python pandas dataframe merge

我有两个数据框需要按如下方式合并:

Df1

Name Type Speed  
a x  1  
a y  0  
a z  1

Df2

Type Fast Slow  
x 2 3  
y 3 5  
z 4 6

Df3 - 期望的结果

Name Type Speed Time  
a x 1 2  
a y 0 5  
a z 1 4

所以基本上我需要创建一个新的 'Time' 列来显示基于 'Fast''Slow' 列的时间在 'Speed' 列和对象 'Type' 上。我真的不知道该怎么做,所以任何帮助将不胜感激!提前致谢。为令人困惑的解释道歉..

最佳答案

使用merge + np.where 获得更简洁的解决方案:

v = df1.merge(df2, on=['Type'])
v['Time'] = np.where(v['Speed'], v.pop('Fast'), v.pop('Slow'))

  Name Type  Speed  Time
0    a    x      1     2
1    a    y      0     5
2    a    z      1     4

关于python - 使用附加条件合并两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070949/

相关文章:

python - 如何根据第一个特定数字和其余数字剪切字符串

python3.3在linux中找不到libpython3.3m.so(pip-3.3)

python - python 中的 HTTP 请求超时

python - Pandas 减去日期时间条件

r - 将R中的多个二进制列合并为一列并保留位置

python - 使用 Python 比较 CSV 文件的列

python - 如何从pandas数据框中的列值中删除连续的四位数字

python - 在 Pandas 数据框中分组时缺少所需值时显示一列

python - Pandas 非连续数字过滤器丢弃 0 行

python - 使用数据框中的值进行索引