[英]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.apply
与ffill
和bfill
一起使用:
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.