Python 如果值存储为“0”,如何获取熊猫中的值计数&引用;列中的分隔值?
我试图分析2019年Stackoverflow开发者调查。在这种情况下,每行中具有列值的LanguageWorked是以分号分隔的。Python 如果值存储为“0”,如何获取熊猫中的值计数&引用;列中的分隔值?,python,pandas,dataframe,data-analysis,series,Python,Pandas,Dataframe,Data Analysis,Series,我试图分析2019年Stackoverflow开发者调查。在这种情况下,每行中具有列值的LanguageWorked是以分号分隔的。 df[“LanguageWorkedWith”]返回此系列对象 Respondent 1 HTML/CSS;Java;JavaScript;Python 2 C++;HTML/CSS;Python 3
df[“LanguageWorkedWith”]返回此系列对象
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())
但是这段代码返回很多NaN值。如何以更好的方式获得值的计数?谢谢大家! 尝试使用
.str.get\u假人
:
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
如果列中有列表对象,如何获取唯一值的计数?您是指与其他字符串混合的列表吗?然后你必须单独使用它们。不仅仅是字符串列表。。就像我将一篇文章的hashtags作为列表对象存储在每一行中一样。然后在第二种方法中只需删除
.str.split(“;”)
。