Pandas(如何修复):列表实际上是字符串,长度的值具有误导性



我有一个数据帧,第一列中有一个年份列表。第二列显示每行中列出的年份。

Years   Count_of_Years
0   []         2
1   []         2
2   ['2021']   6
3   ['2022']   6
4   []         2

这让我觉得每个单元格的内容都是一个纯字符串。当我检查类型时似乎是这样的:

type(df['Years'][0])
str

当我将列转换为列表using to_list()时,它显示:

df['Years'].to_list()
'[]',
'[]',
"['2021']",
"['2021']",
'[]',
'[]', 

如何转换它以使Count_of_Years显示正确的值?

如果Years列中的值已经是字符串,那么我建议使用带有正则表达式模式的str.count方法来查找匹配的出现次数:

df['new_count'] = df['Years'].str.count(r'd{4}')

Years  Count_of_Years  new_count
0        []               2          0
1        []               2          0
2  ['2021']               6          1
3  ['2022']               6          1
4        []               2          0

最新更新