如果值存储为“;”,如何获取 pandas 中的值计数列中的分隔值?
How to get count of values in pandas if the values are stored as ";" delimited values in columns?
我正在尝试分析 2019 年 Whosebug 开发人员调查。其中,每行中的 LanguageWorkedWith 列值以分号分隔。
df["LanguageWorkedWith"] returns 这个系列对象。
Respondent
1 HTML/CSS;Java;JavaScript;Python
2 C++;HTML/CSS;Python
3 HTML/CSS
4 C;C++;C#;Python;SQL
5 C++;HTML/CSS;Java;JavaScript;Python;SQL;VBA
...
88377 HTML/CSS;JavaScript;Other(s):
88601 NaN
88802 NaN
88816 NaN
88863 Bash/Shell/PowerShell;HTML/CSS;Java;JavaScript...
Name: LanguageWorkedWith, Length: 88883, dtype: object
我试过这段代码:
languages = df["LanguageWorkedWith"].str.split(";")
lan_counter = Counter(languages.apply(pd.Series).values.ravel())
但是这段代码 returns 有很多 NaN 值。如何以比这更好的方式获取值的计数?
谢谢!
试试 .str.get_dummies
:
df.LanguageWorkedWith.str.get_dummies(';').sum()
另一种内存效率更高的方法是 str.split
:
df.LanguageWorkedWith.str.split(';').explode().value_counts()
输出:
C 1
C# 1
C++ 3
HTML/CSS 5
Java 2
JavaScript 3
Other(s): 1
Python 4
SQL 2
VBA 1
dtype: int64
我正在尝试分析 2019 年 Whosebug 开发人员调查。其中,每行中的 LanguageWorkedWith 列值以分号分隔。
df["LanguageWorkedWith"] returns 这个系列对象。
Respondent
1 HTML/CSS;Java;JavaScript;Python
2 C++;HTML/CSS;Python
3 HTML/CSS
4 C;C++;C#;Python;SQL
5 C++;HTML/CSS;Java;JavaScript;Python;SQL;VBA
...
88377 HTML/CSS;JavaScript;Other(s):
88601 NaN
88802 NaN
88816 NaN
88863 Bash/Shell/PowerShell;HTML/CSS;Java;JavaScript...
Name: LanguageWorkedWith, Length: 88883, dtype: object
我试过这段代码:
languages = df["LanguageWorkedWith"].str.split(";")
lan_counter = Counter(languages.apply(pd.Series).values.ravel())
但是这段代码 returns 有很多 NaN 值。如何以比这更好的方式获取值的计数?
谢谢!
试试 .str.get_dummies
:
df.LanguageWorkedWith.str.get_dummies(';').sum()
另一种内存效率更高的方法是 str.split
:
df.LanguageWorkedWith.str.split(';').explode().value_counts()
输出:
C 1
C# 1
C++ 3
HTML/CSS 5
Java 2
JavaScript 3
Other(s): 1
Python 4
SQL 2
VBA 1
dtype: int64