我用它來查找字串的第一個非空值:
def get_first_non_null_values(df):
first_non_null_values = []
try:
kst = df['kst'].loc[df['kst'].first_valid_index()]
first_non_null_values.append(kst)
except:
kst = df['kst22'].loc[df['kst22'].first_valid_index()]
first_non_null_values.append(kst)
return first_non_null_values
first_non_null_values = get_first_non_null_values(df_merged)
這有效,但現在在我的新資料集中,我有一些空值和一些""空字串。如何修改它,以便我可以提取第一個值,它既不是 null 也不是空字串
uj5u.com熱心網友回復:
您可以組合使用notnull/astype(bool)和idxmax:
(df['col'].notnull()&df['col'].astype(bool)).idxmax()
示例輸入:
>>> df = pd.DataFrame({'col': ['', float('nan'), False, None, 0, 'A', 3]})
>>> df
col
0
1 NaN
2 False
3 None
4 0
5 A
6 3
輸出: 5
null 和 truthy 狀態:
col notnull astype(bool) both
0 True False False
1 NaN False True False
2 False True False False
3 None False False False
4 0 True False False
5 A True True True
6 3 True True True
第一個非空字串值:
如果您只對非空字串感興趣:
df['col'].str.len().gt(0).idxmax()
uj5u.com熱心網友回復:
我認為你需要:
df = pd.DataFrame({'col': ['', np.nan, '', 1, 2, 3]})
print(df['col'].loc[df['col'].replace('', np.nan).first_valid_index()])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/317675.html
