pandas 获取列表大小的正确方法

vngu2lb8  于 2022-11-20  发布在  其他
关注(0)|答案(2)|浏览(155)

我有一个一列一行的 Dataframe ,如下所示:

list_id
12,13,14,16

list_id列类型为Object

df['list'].dtypes => Object

当我试图获取此列中的元素数时

l = list(df.list_id)

len(l) => 1

或者

len(df['list_id'] => 1

为什么我得到的是1而不是4?
我想得到的元素计数为4。我可以做什么?

8oomwypt

8oomwypt1#

示例

data = {'list_id': {0: '12,13,14,16'}} 
df = pd.DataFrame(data)

代码

df['list_id'].str.split(',').str.len()

结果

0    4
Name: list_id, dtype: int64

如果您只想获得4个非序列,请使用以下代码:

df['list_id'].str.split(',').str.len()[0]
yfwxisqw

yfwxisqw2#

如果list_id列中有实际列表:

df['list_id'].str.len()
  • 请注意,如果您有字符串,则会给予不正确的结果。**

如果有字符串,可以计算','的个数并加1(除非字符串为空'):

df['list_id'].str.count(',') + df['list_id'].ne('')

输出量:

0    4
Name: list_id, dtype: int64

相关问题