Dataframe可以实现强大的数据筛选功能,下面简单举几个例子:
# 创建一个DataFrame
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(6, 4), columns=list('ABCD))
print(df)
df数据结构如下:
A B C D
0 -0.400824 0.998817 2.121522 -1.268276
1 0.228094 -0.408854 -1.192140 1.352446
2 -0.371661 0.527468 -1.056101 -0.844282
3 -1.956070 -0.148563 0.924577 1.236696
4 -0.195633 1.630977 0.051205 -0.569934
5 -0.188138 -0.899891 -0.536001 0.486175
一、如果想要筛选出 B列大于零 的行
:
df1 = df[df['B']>0]
print(df1)
# 输出结果:
A B C D
0 -0.400824 0.998817 2.121522 -1.268276
2 -0.371661 0.527468 -1.056101 -0.844282
4 -0.195633 1.630977 0.051205 -0.569934
二、如果想要筛选出 B列中大于零 的行,同时只显示B列的数据:
df2 = df['B'][df['B'] >0]
print(df2)
# 输出结果:
0 0.998817
2 0.527468
4 1.630977
三、如果想要筛选出 B列大于零,同时C列小于零的行:
df3 = df[(df['B']>0)&(df['C']<0)] # 这里&符号可以实现多条件的筛选
print(df3)
# 输出结果:
A B C D
2 -0.371661 0.527468 -1.056101 -0.844282
四、如果要根据B、C两列来筛选数据,但最终只显示A、D两列的数据:
df4 = df[['A', 'D']][(df['B']>0)&(df['C']<0)]
print(df4)
# 输出结果:
A D
2 -0.371661 -0.844282