根据其他数据框添加特定的列值

劳拉

我有第一个数据框

df1:

A         B       C    D
Car               0
Bike              0
Train             0
Plane             0
Other_1  Plane    2
Other_2  Plane    3
Other 3  Plane    4

而另一个:

df2:

A         B       
Car       4 %        
Bike      5 %        
Train     6 %        
Plane     7 %

所以我想得到这个组合:

df1:

A         B       C    D
Car               0    4 %
Bike              0    5 %
Train             0    6 %
Plane             0    7 %
Other_1  Plane    2    2
Other_2  Plane    3    3
Other 3  Plane    4    4  

哪个是最好的方法?

斯科特·波士顿

如果df和df2的索引相同,则可以使用:

df['D'] = df2['B'].combine_first(df['C'])

输出:

         A      B  C    D
0      Car    NaN  0  4 %
1     Bike    NaN  0  5 %
2    Train    NaN  0  6 %
3    Plane    NaN  0  7 %
4  Other_1  Plane  2    2
5  Other_2  Plane  3    3
6  Other_3  Plane  4    4

如果索引不一致,则可以merge在列A上使用:

df_out = df.merge(df2, on ='A', how='left', suffixes=('','y'))
df_out.assign(D = df_out.By.fillna(df_out.C)).drop('By', axis=1)

或使用@piRSquared改进的单线

df.drop('D',1).merge(df2.rename(columns={'B':'D'}), how='left',on ='A')

输出:

         A      B  C    D
0      Car    NaN  0  4 %
1     Bike    NaN  0  5 %
2    Train    NaN  0  6 %
3    Plane    NaN  0  7 %
4  Other_1  Plane  2    2
5  Other_2  Plane  3    3
6  Other_3  Plane  4    4

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据其他列数据框中的值添加列

根据列的值和来自其他数据框的值向数据框添加新的 cloumn

如何根据条件(特定列的相同值)从其他数据框中复制值?

根据其他列中的值将列添加到数据框

根据其他列的值将新列添加到数据框

根据其他列的值将列添加到数据框

根据其他列值将新列添加到数据框

如何根据其他两列中的值在熊猫数据框中添加新列

根据其他数据框中的数据添加列

根据其他列值删除数据框的值

根据其他列中的值向数据框添加因子

根据其他列替换数据框中的列值

根据其他列值修改数据框列

使用dplyr根据其他数据框添加新列

根据条件从其他数据框中添加列

根据其他列修改数据框值

根据其他数据框值创建一列

根据匹配值从其他数据框中复制列

如何根据其他数据框更新列的值

从 Pandas 数据框中,根据其他列的分组和最大值返回特定列值

根据其他数据框中的索引列表从其他数据框中向数据框中添加新列

根据R中其他数据框中是否存在值,将新值添加到新列中

根据其他数据框的比较添加代表最大值的数据框

根据其他数据框中的列值替换数据框中的值

根据其他列值添加列

根据其他数据框中的列值在熊猫数据框中创建列

根据其他数据框列值更新数据框列值

根据数据框中的其他列更改熊猫数据框的列值

根据其他数据框向熊猫数据框添加新列