[英]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.