有一个DataFrame df:
a b
1 True
2 True
3 False
如何在列b为True的情况下创建列a的子集?
输出:
a
1
2
答案 0 :(得分:3)
将loc
与boolean indexing
一起使用,而不是屏蔽使用列function price(city, product) {
return (data[city] || {})[product];
}
var data = { city1: { coffee: 0.5, water: 0.8, beer: 1.2, sweets: 1.45, peanuts: 1.6 }, city2: { coffee: 0.4, water: 0.9, beer: 1.4, sweets: 1.25, peanuts: 1.8 } };
console.log(price("city1", "water"));
console.log(price("foo", "bar"));
:
...如果需要b
添加Series
:
a
...如果需要s = df.loc[df.b, 'a']
print (s)
0 1
1 2
Name: a, dtype: int64
(一列),请在列表中添加DataFrame
:
a
并且所有列只需要df1 = df.loc[df.b, ['a']]
print (df1)
a
0 1
1 2
:
boolean indexing
也可以使用query
:
df1 = df[df.b]
print (df1)
a b
0 1 True
1 2 True
答案 1 :(得分:0)
如果您想要取回数据框,请使用:
df1 = pd.DataFrame(df[df['b'] == True]['a'])
如果您想获得输出a,请使用:
df1 = df[df['b'] == True]['a']
print (df1)