繁体   English   中英

根据另一列 Pandas 替换列中的空值

[英]Replace the empty values in column based on another column Pandas

我有一个这样的数据框:

公司 TDS 变频调速 翱翔
蒸汽 3429.0 450
蒸汽 1365
闪电战 3425.1 11
闪电战 353.3 34
特斯拉 18
特斯拉 2243.3 32
奥维 15
奥维 16

如果 Corp 值相等,用另一行中的相同值替换列中的空白的最佳方法是什么?

结果应该是这样的:

公司 TDS 变频调速 翱翔
蒸汽 3429.0 450
蒸汽 3429.0 1365
闪电战 3425.1 34 11
闪电战 353.3 34 11
特斯拉 2243.3 18
特斯拉 2243.3 32
奥维 15 16
奥维 15 16

我们可以将GroupBy.applyffillbfill一起使用:

df.groupby('Corp').apply(lambda x: x.ffill().bfill())

    Corp     TDS     VVT  SOAR
0  Steam  3429.0   450.0   NaN
1  Steam  3429.0  1365.0   NaN
2   Bliz  3425.1    34.0  11.0
3   Bliz   353.3    34.0  11.0
4  Tesla  2243.3     NaN  18.0
5  Tesla  2243.3     NaN  32.0
6    OYV     NaN    15.0  16.0
7    OYV     NaN    15.0  16.0

如果你有空格:

df.replace(r'^\s*$', np.nan, regex=True)\
  .groupby('Corp').apply(lambda x: x.ffill().bfill())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM