Pandas中DataFrame数据的筛选,获取行索引号列表,选取数据框中的数据

笔者在对爬取的51job工作数据分析时,对学历要求进行绘图,遇到了爬取数据类型错误的例子
1.查看数据

import pandas as pd
data=pd.read_csv('test_datasets_finally.csv',delimiter='#',header=0)
df=pd.DataFrame(data)
print(df.shape)
print(df.loc[:,'education'].nunique())#地区数
education=df.loc[:,'education'].value_counts()
print(education)

在这里插入图片描述
2.对数据进行筛选:

num=education.values.tolist()
education=education.index.to_list()
res=[]
for one in education:
    if u'人' not in one and u'education' not in one:
        res.append(one)
print(res)

在这里插入图片描述

education=df.loc[:,'education'].value_counts()
df=education.reset_index()
print(df)
new_df=df.loc[df['index'].isin(res)]
print(new_df)
num=new_df['education'].values.tolist()
education=new_df['index'].values.tolist()
print(num)
print(education)

在这里插入图片描述
3.绘制饼图

plt.figure(figsize=(6,6))## 将画布设定为正方形,则绘制的饼图是正圆
explode = [0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01]## 设定各项离心n个半径
plt.pie(num,explode=explode,labels=education,autopct='%1.1f%%')## 绘制饼图
plt.title('大数据公司学历要求图')
plt.legend(loc="upper right",fontsize=10,bbox_to_anchor=(1.1,1.05),borderaxespad=0.3)
plt.savefig('./job_company/大数据公司学历要求饼图.jpg')
plt.show()

在这里插入图片描述
下面是对选取dataframe数据框中的数据的一些总结:

根据列条件,选取dataframe数据框中的数据,进行数据筛选
1.选取等于某些值的行记录 用 ==

df.loc[df['column_name'] == some_value]

2.选取某列是否是某一类型的数值 用 isin

df.loc[df['column_name'].isin(some_values)]

3.多种条件的选取 用 &

df.loc[(df['column'] == some_value) & df['other_column'].isin(some_values)]

4.选取不等于某些值的行记录 用 !=

df.loc[df['column_name'] != some_value]

5.isin返回一系列的数值,如果要选择不符合这个条件的数值使用~

df.loc[~df['column_name'].isin(some_values)]

选取dataframe数据框中的数据参考:https://blog.csdn.net/huang_susan/article/details/80626698

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值