如何使用Pandas根据DataFrame中B列的值筛选数据?
解决方案:基于Pandas的列值筛选数据
没问题,这事儿很容易搞定!咱们先明确需求:从原始DataFrame里筛选出B列值为1或2的行,保留原索引,得到你要的df_new。
原始数据
首先先确认下咱们的初始DataFrame:
import pandas as pd data = { 'A': ['b1', 'b2', 'b1', 'b1', 'b2', 'b2'], 'B': [1, 1, 3, 2, 2, 4], 'C': [0, 0, 1, 1, 1, 1] } df = pd.DataFrame(data) print(df)
输出和你给出的一致:
A B C 0 b1 1 0 1 b2 1 0 2 b1 3 1 3 b1 2 1 4 b2 2 1 5 b2 4 1
筛选命令
有两种常用方法可以实现你的需求:
方法1:使用isin()(推荐,值多的时候更简洁)
这个方法直接指定B列需要保留的值列表,代码如下:
df_new = df[df['B'].isin([1, 2])] print(df_new)
方法2:使用逻辑或运算符|
如果值少的话,也可以直接用条件判断组合:
df_new = df[(df['B'] == 1) | (df['B'] == 2)] print(df_new)
结果验证
不管用哪种方法,输出的df_new都会和你想要的完全一致:
A B C 0 b1 1 0 1 b2 1 0 3 b1 2 1 4 b2 2 1
内容的提问来源于stack exchange,提问作者bzdhss
相关产品推荐
相关产品推荐

