我在數據框中有一列,其中包含一個列表。我的數據框列是: [], ['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
提交
取消