gpt4 book ai didi

python - 如何用 Pandas 数据框列中列表的第一个元素替换列表?

转载 作者:行者123 更新时间:2023-12-05 01:52:45 26 4
gpt4 key购买 nike

我有一个 pandas 数据框 df,它看起来像这样:

df = pd.DataFrame({'Name':['Harry', 'Sam', 'Raj', 'Jamie', 'Rupert'],
'Country':['USA', "['USA', 'UK', 'India']", "['India', 'USA']", 'Russia', 'China']})

Name Country

Harry USA
Sam ['USA', 'UK', 'India']
Raj ['India', 'USA']
Jamie Russia
Rupert China

Country 列中的一些值是列表,我想用列表中的第一个元素替换这些列表,这样它看起来像这样:

Name           Country

Harry USA
Sam USA
Raj India
Jamie Russia
Rupert China

最佳答案

因为你有字符串,你可以在这里使用正则表达式:

df['Country'] = df['Country'].str.extract('((?<=\[["\'])[^"\']*|^[^"\']+$)')

输出(为清楚起见作为新列):

     Name                 Country Country2
0 Harry USA USA
1 Sam ['USA', 'UK', 'India'] USA
2 Raj ['India', 'USA'] India
3 Jamie Russia Russia
4 Rupert China China

正则表达式:

(             # start capturing
(?<=\[["\']) # if preceded by [" or ['
[^"\']* # get all text until " or '
| # OR
^[^"\']+$ # get whole string if it doesn't contain " or '
) # stop capturing

关于python - 如何用 Pandas 数据框列中列表的第一个元素替换列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71469808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com