选择由元素列表组成的列的最后一个元素

2024-03-28 11:08:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个熊猫数据框:

 df = pd.DataFrame([
    (142, [1,2]),
    (144, 3),
    (144, 1),
    (142, 1),
    (142, [1,3]),
    (144, [1,5]),
    (142, 2)
], columns=['ID', 'Column_1'])

如您所见Column_1是由单个元素和元素列表组成的列

我的目标是创建一个新列,它接受最后的元素,其中Column_1是一个列表,而单个值只有一个值,如下所示:

 df = pd.DataFrame([
    (142, [1,2] ,2),
    (144, 3 ,3),
    (144, 1 ,1),
    (142, 1 ,1),
    (142, [1,3] , 3),
    (144, [1,5] , 5),
    (142, 2)
], columns=['ID', 'Column_1' , 'new_column'])

有人能帮我吗


1条回答
网友
1楼 · 发布于 2024-03-28 11:08:25

让我们尝试一下str切片,然后fillna,还要注意最后一行应该是2

df['new'] = df['Column_1'].str[-1].fillna(df.Column_1)
df
Out[118]: 
    ID Column_1  new_column  new
0  142   [1, 2]         2.0  2.0
1  144        3         3.0  3.0
2  144        1         1.0  1.0
3  142        1         1.0  1.0
4  142   [1, 3]         3.0  3.0
5  144   [1, 5]         5.0  5.0
6  142        2         NaN  2.0

相关问题 更多 >