我有一个pandas DataFrame,我想删除它中的行,其中特定列中的字符串长度大于2.我知道我可以df.dropna()用来摆脱包含any的行NaN,但我没有看到如何基于条件表达式删除行.
这个问题的答案似乎与我想要的非常接近 - 似乎我应该能够做到这样的事情:
df[(len(df['column name']) < 2)]
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
KeyError: u'no item named False'
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我做错了什么?
要按单列过滤数据框(df),如果我们考虑男性和女性的数据,我们可能会:
males = df[df[Gender]=='Male']
Run Code Online (Sandbox Code Playgroud)
问题1 - 但如果数据跨越多年并且我只想看2014年的男性怎么办?
在其他语言中,我可能会这样做:
if A = "Male" and if B = "2014" then
Run Code Online (Sandbox Code Playgroud)
(除了我想这样做并在新的dataframe对象中获取原始数据帧的子集)
问题2.如何在循环中执行此操作,并为每个独特的年份和性别集创建数据框对象(即:2013年男性,2013年女性,2014年男性和2014年女性的df
for y in year:
for g in gender:
df = .....
Run Code Online (Sandbox Code Playgroud)