我正在寻找预成型的一组列的功能表设置如下:
| 色谱柱_A|色谱柱B|色谱柱_C| D列|
| - -----|- -----|- -----|- -----|
| 一百二十三|四百五十六|零|零|
| 二百五十八|零|四百五十六|零|
| 零|七八五|零|零|
| 零|零|七九四|零|
我本质上是在寻找一个操作(为了这个例子的目的,假设我试图从值中减去10),按照列的“重要性”顺序,并将其存储在Column_D中。例如:
- 如果列A不为空,则列D =列A-10。
- 如果列A为空,则列D =列B-10。
- 如果列B为空,则列D =列C-10。
column_B和column_C不应同时填充,它是一个或另一个,但它们可以与column_A同时填充。这个数据集大得离谱,所以不可能遍历行。有人有什么建议吗?
到目前为止,我已经尝试了if/elif/else逻辑,但在我的情况下,这并没有将值应用到整个 Dataframe 。也许我做得不对,我会尝试人们有的任何解决方案,即使它是if/elif/else语句。
我计划在代码完成后尝试以下操作:
df.Column_D = df.Column_A.combinefirst(df.Column_B)
df['Column_E'] = df.Column_A.combinefirst(df.Column_C)
df.Column_D = df.Column_D.fillna(df.Column_E)
1条答案
按热度按时间z9smfwbn1#
您可以使用bfill,它根据您指定的序列填充缺少的值。参见以下示例: