将计数器从集合应用到数据框中的列
Applying the counter from collection to a column in a dataframe
我有一列字符串,其中每一行都是一个字符串列表。我想计算整个列的元素,而不仅仅是 pandas 中的 value.counts() 得到的行。
我想应用 Collections 模块中的 Counter(),但它只在列表上运行。我在 DataFrame 中的列如下所示:
[['FollowFriday', 'Awesome'],
['Covid_19', 'corona', 'Notagain'],
['Awesome'],
['FollowFriday', 'Awesome'],
[],
['corona', Notagain],
....]
我想获取计数,比如
[('FollowFriday', 2),
('Awesome', 3),
('Corona', 2),
('Covid19'),
('Notagain', 2),
.....]
我使用的基本命令是:
from collection import Counter
Counter(df['column'])
或
from collections import Counter
Counter(" ".join(df['column']).split()).most_common()
如有任何帮助,我们将不胜感激!
IIUC,您与 pandas 的比较只是为了说明您的目标并且您想使用列表?
您可以使用:
l = [['FollowFriday', 'Awesome'],
['Covid_19', 'corona', 'Notagain'],
['Awesome'],
['FollowFriday', 'Awesome'],
[],
['corona', 'Notagain'],
]
from collections import Counter
from itertools import chain
out = Counter(chain.from_iterable(l))
或者如果您有一系列列表,请使用 explode
:
out = Counter(df['column'].explode())
# OR
out = df['column'].explode().value_counts()
输出:
Counter({'FollowFriday': 2,
'Awesome': 3,
'Covid_19': 1,
'corona': 2,
'Notagain': 2})
我有一列字符串,其中每一行都是一个字符串列表。我想计算整个列的元素,而不仅仅是 pandas 中的 value.counts() 得到的行。 我想应用 Collections 模块中的 Counter(),但它只在列表上运行。我在 DataFrame 中的列如下所示:
[['FollowFriday', 'Awesome'],
['Covid_19', 'corona', 'Notagain'],
['Awesome'],
['FollowFriday', 'Awesome'],
[],
['corona', Notagain],
....]
我想获取计数,比如
[('FollowFriday', 2),
('Awesome', 3),
('Corona', 2),
('Covid19'),
('Notagain', 2),
.....]
我使用的基本命令是:
from collection import Counter
Counter(df['column'])
或
from collections import Counter
Counter(" ".join(df['column']).split()).most_common()
如有任何帮助,我们将不胜感激!
IIUC,您与 pandas 的比较只是为了说明您的目标并且您想使用列表?
您可以使用:
l = [['FollowFriday', 'Awesome'],
['Covid_19', 'corona', 'Notagain'],
['Awesome'],
['FollowFriday', 'Awesome'],
[],
['corona', 'Notagain'],
]
from collections import Counter
from itertools import chain
out = Counter(chain.from_iterable(l))
或者如果您有一系列列表,请使用 explode
:
out = Counter(df['column'].explode())
# OR
out = df['column'].explode().value_counts()
输出:
Counter({'FollowFriday': 2,
'Awesome': 3,
'Covid_19': 1,
'corona': 2,
'Notagain': 2})