簡體   English   中英

如何計算 pandas 系列中列表的元素

[英]How to count the elements of a list within a pandas series

我有以下數據結構。

basket_series = df_train["basket"].head(10)
type(basket_series) 

Output: pandas.core.series.Series

0                [3]
1       [5, 3, 0, 3]
2       [3, 3, 1, 4]
3                [2]
4       [4, 4, 4, 4]
5       [4, 3, 4, 4]
6             [3, 4]
7    [4, 4, 1, 4, 4]
8       [1, 5, 2, 2]
9          [5, 5, 0]

我想知道每個“列表”-> 有多少數字,但我認為“列表”僅被解釋為字符串。 我的方法是:

basket_series.size()  

output: 10

for x in basket_series: 
  print(len(x)) 

output: 3 12 12 3 12 12 6 15 12 9這似乎與

basket_series.str.len()
for x in basket_series:
    print(len(list(x)))

所以問題是它被視為一個字符串? 你有什么想法?

我想部分答案已經包含在評論中,但這里是完整性的代碼 -

import pandas as pd
from ast import literal_eval

l = ['[3]',
     '[5, 3, 0, 3]',
     '[3, 3, 1, 4]',
     '[2]',
     '[4, 4, 4, 4]',
     '[4, 3, 4, 4]',
     '[3, 4]',
     '[4, 4, 1, 4, 4]',
     '[1, 5, 2, 2]',
     '[5, 5, 0]']

s = pd.Series(l)
print(s.map(literal_eval).apply(len))
0    1
1    4
2    4
3    1
4    4
5    4
6    2
7    5
8    4
9    3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM