美文网首页前端开发
pandas数据分析,看这个项目总结就够了(二)

pandas数据分析,看这个项目总结就够了(二)

作者: cshuangc | 来源:发表于2019-05-30 22:36 被阅读12次

原文地址:https://www.kesci.com/home/project/5c418c295c4cef002c33940d/code注:代码是在Pycharm上写的。里面用到的数据来自国家统计局(http://data.stats.gov.cn/adv.htm?m=advquery&cn=E0105)。

import pandasas pd

df = pd.read_csv("2015年国内主要城市年度数据.csv")

# 4. 索引问题

# 单个索引,inplace=False 不覆盖的情况下,要使用一个变量 d 来间接操作

d = df.set_index(keys='年份', inplace=False)

print(d.iloc[:, :4].head())# 设置索引时的情况

# 注意在取消索引操作时,inplace=True 设置为 True,以便后面可以查看到取消后的情况

d.reset_index(inplace=True)

print(d.iloc[:, :4].head())# 取消索引时的情况

# 多级索引,inplace=True 覆盖的情况下,直接使用 df访问.

# 注意:在 inplace=True 覆盖原数据情况下,运行第 2 或多次,就会出现报错的情况,同时代码并没有语法错误,原因是原数据被覆盖了。

#      解决方法是:重新运行所有代码,如果不是很必要,尽量不要执行覆盖原数据的操作

df.set_index(keys=['地区', '年份'], inplace=True)# 设置多级索引,覆盖原数据

print(df.iloc[:, :4].head())

df.reset_index(inplace=True)

print(df.iloc[:, :4].head())

# 5. 排序问题

# 通过索引排序

data = df.sample(n=5, replace=False)# 通过随机不放回抽样 5 个数据

# 通过索引排列,升序排列、不覆盖原数据、如有缺失值则放在前面

data.sort_index(ascending=True, inplace=False, na_position='first')

print(df.head())

# 通过指定列的值排序

# 先以 "升序" 模式排完 "地区" 这一列,"年份" 这列再以 "地区" 列来排序

df.sort_values(by=['地区', '年份'], ascending=[True, False],inplace=False, na_position='first').head(7)

print(df.head())

# 6. 重复数据处理

# 返回唯一值

print('\n>>>', df['地区'].unique())# 唯一值元素

print('\n>>>\n', df.nunique())# 唯一值数量

# 重复值处理

# 查找重复值

print('\n>>>', df.duplicated(subset=['年份'], keep='first').head())

# 删除重复值

print('\n>>>', df.drop_duplicates(subset=['年份'], keep='first', inplace=False).iloc[:, :4])

# 查找重复索引

print('\n>>>', df.index.duplicated())

相关文章

网友评论

    本文标题:pandas数据分析,看这个项目总结就够了(二)

    本文链接:https://www.haomeiwen.com/subject/ecobtctx.html