如何基于Python中的另一列来对数据进行子集化

时间:2017-07-22 18:00:11

标签: python pandas

有一个DataFrame df:

a  b
1  True
2  True
3  False

如何在列b为True的情况下创建列a的子集?

输出:

a 
1 
2  

2 个答案:

答案 0 :(得分:3)

locboolean 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)