BIG陽(yáng)
2023-02-15 17:18:00
我在數(shù)據(jù)框中有一列,其中包含一個(gè)列表。我的數(shù)據(jù)框列是: [], ['NORM'], ['NORM'], ['NORM'], ['NORM'], ['MI', 'STTC'],如您所見(jiàn),我有一個(gè)空列表和一個(gè)包含兩個(gè)元素的列表。我怎樣才能更改包含兩個(gè)元素的列表以只取其中一個(gè)(我不在乎是哪個(gè))。我嘗試過(guò)df.column.explode(),但這只會(huì)添加更多行,我不想要更多行,我只需要使用其中之一。太感謝了
3 回答

慕尼黑8549860
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
您可以使用Series.map
自定義映射函數(shù),該函數(shù)根據(jù)所需要求映射列的元素:
df['col'] = df['col'].map(lambda l: l[:1])
結(jié)果:
# print(df['col'])
0 []
1 [NORM]
2 [NORM]
3 [NORM]
4 [NORM]
5 [MI]

慕絲7291255
TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
當(dāng)您將列表存儲(chǔ)到 pandas 列中時(shí),我假設(shè)您不擔(dān)心矢量化。所以你可以只使用列表理解:
df[col] = [i[:1] for i in df[col]]

aluckdog
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
i, j 是您需要訪問(wèn)的單元格的位置,這將給出列表的第一個(gè)元素
list_ = df.loc[i][j]
if len(list_) > 0:
print(list_[0])
添加回答
舉報(bào)
0/150
提交
取消