[英]Counting values in pandas dataframe using lambda
我有一個熊貓數據框中的年份列表。 我想使用lambda函數過濾它們,我正在嘗試使用count方法傳遞該函數。 對我來說,使用lambda是最方便的方法,我更喜歡一個涉及lambda的解決方案。
print df['year_built'][:5]
print df['year_built'].count(lambda x: len(x) == 4)
0 1981
1 1980
2 1935
3 2007
4 1994
Name: year_built, dtype: object
AttributeError: 'RangeIndex' object has no attribute 'levels'
沒有lambda的最佳方式是什么?
為什么不只使用列表理解。
[x for x in df['year_built'] if len(x) == 4]
我認為正確的方法是(假設year_built
是object
類型的一列,並且包含字符串:
df.loc[df['year_built'].str.len() == 4, 'year_built']
如果沒有:
df.loc[(1000 <= df['year_built']) & (df['year_built'] < 9999), 'year_built']
假設year_build
是字符串列。 下面將為您提供len = 4的行數
year_build
0 1981
1 1980
2 1935
3 2007
4 1994
5 67
6 89
In [149]: (df['year_build'].str.len() == 4).sum()
Out[149]: 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.