前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >抽转腾挪:python玩转csv数据

抽转腾挪:python玩转csv数据

作者头像
herain
发布2023-09-01 09:14:22
1350
发布2023-09-01 09:14:22
举报
文章被收录于专栏:数据指象数据指象

用python处理结构化的CSV数据,我们自然而然会想到结构化查询语句(SQL),如果在python用sql语法来处理数据,肯定很丝滑。

第一步:安装必备的python包 pandas、pandasql。这是用pip 指定清华大学镜像秒下载秒安装。

代码语言:javascript
复制
 python -m pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/
 python -m pip install pandasql -i https://pypi.tuna.tsinghua.edu.cn/simple/

第二步:引用已经安装好的包

代码语言:javascript
复制
import pandas as pd
from pandasql import sqldf

第三步:数据文件的读取

代码语言:javascript
复制
dfdata = pd.read_csv("data.csv")

第四步:玩转数据的四大操作

我们是用结构化的查询语句,通常对数据做四种类型的操作:数据映射(要查的数据数据列 select 操作)、数据过滤(筛选出想要的数据 where操作)、数据聚合(多维数据的分组统计 group by 操作)、数据联结(整合数据方便阅读 join操作)。

sqldf 数据映射 操作 (不建议使用 select * ):

代码语言:javascript
复制
sqldf("select * from dfdata")

sqldf 数据过滤 操作:

代码语言:javascript
复制
sqldf("select * from dfdata where age=18")

qldf 数据聚合 操作:统计人数的性别分布

代码语言:javascript
复制
sqldf("select sex,count(1) from dfdata group by sex")

sqldf 数据联结 操作:

新增标签,女性朋友 是 巾帼英雄,男性朋友 是 顶天立地。

代码语言:javascript
复制
sqldf('''select t1.*,t2.tag from dfdata t1
left join (
select "男" as sex, "顶天立地" as tag
union all 
select "女" as sex, "巾帼英雄" as tag
) t2 on t1.sex=t2.sex
''')

以上一番操作,基本能满足题主 99.999%的需求了吧。

第五步:数据结果的保存

数据保存的方式有两种:一种是追加写(覆盖写少用,说多了都是眼泪)、一种是新建文件。

代码语言:javascript
复制
#### 追加写入数据
f = open("data.csv", "a", encoding="UTF-8")
f.write("\n200,bing,199,man,188")
f.flush()
#### 写入新文件
(sqldf("select * from dfdata where age=18")).to_csv('年龄18岁的人群.csv')

至此,大功完,请小主们 点赞。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据指象 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档