我有这样的大熊猫DataFrame
:
In [34]: people = pandas.DataFrame({'name' : ['John', 'John', 'Mike', 'Sarah', 'Julie'], 'age' : [28, 18, 18, 2, 69]})
people = people[['name', 'age']]
people
Out[34]:
name age
0 John 28
1 John 18
2 Mike 18
3 Sarah 2
4 Julie 69
我想DataFrame
使用以下元组对此进行过滤:
In [35]: filter = [('John', 28), ('Mike', 18)]
输出应如下所示:
Out[35]:
name age
0 John 28
2 Mike 18
我尝试这样做:
In [34]: mask = k.isin({'name': ['John', 'Mike'], 'age': [28, 18]}).all(axis=1)
k = k[mask]
k
但是它向我展示了两个约翰,因为它独立地过滤了每一列(两个约翰的年龄都存在于age
数组中)。
Out[34]:
name age
0 John 28
1 John 18
2 Mike 18
如何根据多个字段合并过滤行?
这应该工作:
people.set_index(people.columns.tolist(), drop=False).loc[filter].reset_index(drop=True)
# set_index with the columns you want to reference in tuples
cols = ['name', 'age']
people = people.set_index(cols, drop=False)
# ^
# |
# ensure the cols stay in dataframe
# does what you
# want but now has
# index that was
# not there
# /--------------\
people.loc[filter].reset_index(drop=True)
# \---------------------/
# Gets rid of that index
问题内容: 我正在尝试使用Pandas在几个条件下进行布尔索引。我原来的DataFrame称为。如果执行以下操作,将得到预期的结果: 但是,如果我这样做(我认为应该是等效的),则不会返回任何行: 知道导致差异的原因是什么? 问题答案: 使用是因为运算符优先级: 或者,在单独的行上创建条件: 样品 :
问题内容: 我需要使用字典来过滤数据帧,该字典的键是列名,值是我要过滤的值: 但是我想做些事情 但这会多次过滤数据帧,一次过滤一个值,而不是一次应用所有过滤器。有没有办法以编程方式进行? 编辑:一个例子: 给 但预期结果是 仅应选择最后一个。 问题答案: IIUC,您应该可以执行以下操作: 通过制作一个系列来与以下项目进行比较: 选择以下内容的相应部分: 查找它们匹配的位置: 查找它们 都 匹配的
问题内容: 要按单列过滤数据帧(df),如果我们考虑男性和女性的数据,则可以: 问题1-但是,如果数据跨越多年并且我只想看2014年的男性,该怎么办? 用其他语言,我可能会做类似的事情: (除了我要执行此操作,并在新的数据框对象中获取原始数据框的子集) 问题2。如何循环执行此操作,并为每个唯一的年份和性别集创建一个数据框对象(例如,2013-男,2013-女,2014-男和2014-女的df 问题
我有下表: 选择*结果JSON schema JSON: 我想通过cust_id和重复的字段来过滤它们的值,所以查询如下: 查询的预期输出: JSON格式查询的预期输出: 受这个问题的启发BigQuery:用标准SQL过滤重复字段我试试这个查询: 哪个输出: 输出JSON: 输出结果是不一样的,我想有,我如何才能实现这一点?
问题内容: 我的数据有年龄,还有每月付款。 我正在尝试汇总付款总额,但不汇总年龄(平均有效)。 是否可以对不同的列使用不同的功能? 问题答案: 您可以将列名作为键,将想要的函数作为值传递给字典。
我正在读一个带有如下浮点数的CSV: 并导入到数据框中,然后将此数据框写入新位置 现在,此