簡體   English   中英

使用Lambda計算熊貓數據框中的值

[英]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_builtobject類型的一列,並且包含字符串:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM