簡體   English   中英

用條件填充熊貓列

[英]Fill panda columns with conditions

我正在嘗試使用以下條件填充 C 列:如果 B 列的值為 None,則使用 A 列的值填充 C

我試過了:

import pandas
df = pandas.DataFrame([{'A': 5, 'B': None, 'C': ''},
                   {'A': 2, 'B': "foo", 'C': ''},
                   {'A': 6, 'B': "foo", 'C': ''},
                   {'A': 1, 'B': None, 'C': ''}])

df["C"] = df["B"].apply(lambda x: 3 if (x != None) else df["A"])

我的 output:

TypeError:“int”類型的 object 沒有 len()

我知道問題是 df["A"],但我不知道如何解決它

好 output:

df = pandas.DataFrame([{'A': 5, 'B': None, 'C': 5},
                   {'A': 2, 'B': "foo", 'C': 3},
                   {'A': 6, 'B': "foo", 'C': 3},
                   {'A': 1, 'B': None, 'C': 1}])

使用numpy.where並通過Series.isna進行測試None

df["C"] = np.where(df["B"].isna(), df['A'], 3)
#alternative
#df["C"] = df['A'].where(df["B"].isna(), 3)
   print (df)
 A     B  C
0  5  None  5
1  2   foo  3
2  6   foo  3
3  1  None  1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM