我是 Python 新手,我正在尝试使用索引来获取每行的姓氏。
import numpy as np
import pandas as pd
def manager(vec):
for i,val in enumerate(vec):
if val == np.NaN:
break
return vec[i - 1]
df = pd.DataFrame({'ID':[23,15,20], 'L1_name': ['Andrew','Thomas','Thomas'],
'L1_ID': [234,994,994],'L2_Name':['Andrew','Alice','Thomas'],'L2_ID':[234,237,994],
'L3_Name':['Jerico','Sarah',np.nan],'L3_ID':[453,237,np.nan]})
df['new'] = df.apply(manager, axis=1)
df
有人知道我做错了什么吗?
最佳答案
使用filter
向前填充每行缺失值,并按位置选择最后一列:
s = df.filter(like='Name').ffill(axis=1).iloc[:,-1]
print (s)
0 Jerico
1 Sarah
2 Thomas
Name: L3_Name, dtype: object
关于python - 索引数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54785894/