python - 索引数据框

标签 python pandas dataframe indexing

我是 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/

相关文章:

python - 寻找 Pandas.DateTimeIndex.is_dst()

python - 添加数据标签 - matplotlib 条形图

python - 如何使用字典更新 DataFrame 行的多个(但不是全部)值?

python - 修改数据帧列中一对值之间的所有值

python - pandas 转换函数作为参数

python - SSH:在终端中运行的 javac 命令在通过 SSH 执行时不起作用

python - 可以在 lambda 中完成循环吗?

python - lxml 适用于 Python 2.5.6、osx 10.7.3

python-3.x - Python find.line 不从文本文件中过滤日期字符串

python - Pandas read_sql 数据类型