pandas选择数据

在此附上视频链接,想具体了解的朋友可以看看。
一、引入第三方库
首先我们引入numpy与pandas第三方库,如果没有安装的同学可以在命令行中pip install numpy 或 pip install pandas 进行安装
import numpy as np
import pandas as pd
二、需要用到的一组数据
dates = pd.date_range('20190424', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=['A', 'B', 'C', 'D'])
print(df)
先打印出这组数据,效果如下:

三、一般选择选择方法(行列)
a.选择某一列
print(df[''A]) # 选择A这列
# 或者 print(df.A) 效果同上
b.切片选择
如下选择[0:3]行打印出来
print(df[0:3])
如下选择['20190425': '20190426']打印出来
print(df['20190425': '20190426'])
代码如下:
import pandas as pd
import numpy as np
dates = pd.date_range('20190424', periods=6)
df = pd.DataFrame(
np.arange(24).reshape((6, 4)),
index=dates, columns=['A', 'B', 'C', 'D']
)
print(df)
print('\n选择A列\n', df['A'])
print('\n切片选择区间[0:3]\n', df[0:3])
print("\n切片选择区间['20190425': '20190427']\n", df['20190425': '20190426'])
打印效果如下:

三、用标签或者行号进行筛选
1.通过标签进行选择
选择20190425这一行
print(df.loc['20190425'])
所有的行都保留,筛选出 'A','B'这两列的数据
print(df.loc[:, ['A', 'B']])
代码如下:
import pandas as pd
import numpy as np
dates = pd.date_range('20190424', periods=6)
df = pd.DataFrame(
np.arange(24).reshape((6, 4)),
index=dates, columns=['A', 'B', 'C', 'D']
)
print(df)
print('\n选择20190425这一行')
print(df.loc['20190425'])
print("\n筛选出行为'20190424'列为'A','C'的数据")
print(df.loc['20190424',['A', 'B']])
print("\n所有的行都保留,筛选出 'A','B'这两列的数据")
print(df.loc[:, ['A', 'B']])
打印效果如下:

2.通过位置进行选择
打印出第三行:
print(df.iloc[3])
第三行的第一位
print(df.iloc[3, 1])
切片选择 3:5行 1:3列
print(df.iloc[3:5, 1:3])
不连续筛选
print(df.iloc[[1, 3, 5], 1:3])
代码如下:
import pandas as pd
import numpy as np
dates = pd.date_range('20190424', periods=6)
df = pd.DataFrame(
np.arange(24).reshape((6, 4)),
index=dates, columns=['A', 'B', 'C', 'D']
)
print(df)
print('\n打印出第三行:')
print(df.iloc[3])
print("\n第三行的第一位")
print(df.iloc[3, 1])
print("\n切片选择 3:5行 1:3列")
print(df.iloc[3:5, 1:3])
打印效果如下:

四、条件筛选(进行True或False的筛选)
筛选出A这列大于8的数(会打印出符合条件的这行,可以参照效果图理解)
print(df[df.A > 8])
代码如下:
import pandas as pd
import numpy as np
dates = pd.date_range('20190424', periods=6)
df = pd.DataFrame(
np.arange(24).reshape((6, 4)),
index=dates, columns=['A', 'B', 'C', 'D']
)
print(df)
print('\n筛选出A这列大于8的数(会打印出符合条件的这行,可以参照效果图理解)')
print(df[df.A > 8])
打印效果图如下:

谢谢大家, 这里是这次的分享,如果有难理解的可以对照打印效果图进行理解,如果有需要了解更多相关知识的话可以看看我之前的博文或关注我的博客,谢谢大家。
欢迎大家在下方评论与留言或者给出建议,如有错误请指出。希望这篇博文能帮助到大家,也欢迎大家分享给需要的人。
如需转载,请注明出处。