gpt4 book ai didi

python - 计算 Python pandas Dataframe 列中的多个值

转载 作者:行者123 更新时间:2023-11-30 22:49:32 24 4
gpt4 key购买 nike

我正在尝试计算 pandas 数据帧列中的唯一值,该列包含由字符串分隔的多个值。如果这是一个系列,我可以使用 value_counts() 来做到这一点,但是我将如何在数据框中做到这一点?看起来数据框应该更容易。

数据:

                      ID       Tags
Created at
2016-03-10 09:46:00 3074 tag_a
2016-04-13 11:50:00 3524 tag_a tag_b
2016-05-18 15:22:00 3913 tag_a tag_b tag_c

代码:

%matplotlib inline
import pandas as pd

# read csv into the data dataframe
allData = r'myData.csv'

tickets_df = pd.read_csv((allData),usecols=['Id','Created at','Tags'],parse_dates=['Created at'], index_col=['Created at'])
tickets_df.fillna(0,inplace=True)
tickets_df['2016':'2016']

# this would work with a series:

tickets_df[tickets_df['Tags'].str.split().apply(lambda x: pd.Series(x).value_counts()).sum()]

错误:

KeyError: '[   3.    2.    3.    5.    2.  102.    9.    5.    1.    4.    1.  161.\n    4.    4.    1.    6.    4.   34.    1.    1.    1.    6.    2.    5.\n    1.    1.    1.    1.   11.    2.    1.    1.    3.    1.    1.    1.\n    1.    1.    1.    1.    2.    1.    1.    2.    2.    6.    1.    4.\n    2.    1.    1.    2.    1.    1.    1.    3.    2.    1.    4.   35.\n   11.    2.    1.   13.    3.    8.   63.   87.    2.    2.    1.    1.\n    1.    1.    1.    1.  150.    1.   24.    3.    7.    5.    1.    1.\n    3.    4.    2.    6.    1.    2.    3.    5.    2.    5.   15.    1.\n   42.    1.   14.    1.    1.    1.    6.   13.   13.    9.    2.   11.\n    3.    1.    1.] not in index'

期望的输出:

tag_a  3
tag_b 2
tag_c 1

最佳答案

使用str.split使用 expand=True 将每个字符串分成不同的列,然后使用 stack接下来是 value_counts :

df['Tags'].str.split(expand=True).stack().value_counts()

结果输出:

tag_a    3
tag_b 2
tag_c 1

关于python - 计算 Python pandas Dataframe 列中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39733948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com