我在数据框中有一列,其中包含一个列表。我的数据框列是: [], ['NORM'], ['NORM'], ['NORM'], ['NORM'], ['MI', 'STTC'],如您所见,我有一个空列表和一个包含两个元素的列表。我怎样才能更改包含两个元素的列表以只取其中一个(我不在乎是哪个)。我尝试过df.column.explode(),但这只会添加更多行,我不想要更多行,我只需要使用其中之一。太感谢了
3 回答

慕尼黑8549860
TA贡献1818条经验 获得超11个赞
您可以使用Series.map
自定义映射函数,该函数根据所需要求映射列的元素:
df['col'] = df['col'].map(lambda l: l[:1])
结果:
# print(df['col'])
0 []
1 [NORM]
2 [NORM]
3 [NORM]
4 [NORM]
5 [MI]

慕丝7291255
TA贡献1859条经验 获得超6个赞
当您将列表存储到 pandas 列中时,我假设您不担心矢量化。所以你可以只使用列表理解:
df[col] = [i[:1] for i in df[col]]

aluckdog
TA贡献1847条经验 获得超7个赞
i, j 是您需要访问的单元格的位置,这将给出列表的第一个元素
list_ = df.loc[i][j]
if len(list_) > 0:
print(list_[0])
添加回答
举报
0/150
提交
取消