Python处理CSV文件的12个高效技巧

        今天,我们的Python之旅,目标是那片由逗号分隔的宝藏——CSV文件。别看它简单,掌握这些技巧,你的数据处理能力将直线上升,轻松驾驭千行万列的数据海洋。让我们一起,用Python的魔力,让CSV舞动起来吧!

目录

回到首页

1. 安装2. 读取CSV:read_csv()3. 查看头尾数据:head()、tail()4. 列名更改:rename()
5.条件选择6. 统计分析7. 一分为二8. 合并数据:pd.concat()、merge()
9. 布尔索引10. 去除空值:dropna()、fillna()11. 排序操作12. 保存成果:to_csv()
13. 利用查询功能:query()14. 处理日期时间:pd.to_datetime()15.透视表的魅力:pivot table16. 掌握元素的类型
17. 理解join18. 图形化理解

1. 安装

安装pandas

pip install pandas

导入——pandas,并亲切地叫它pd

import pandas as pd

回到首页 

2. 读取CSV:read_csv()

data = pd.read_csv('data.csv')

这一行代码,就像渔网一样,把CSV里的所有数据捞到一个DataFrame中。DataFrame,就是你的数据工作台。

回到首页  

3. 查看头尾数据:head()、tail()

print(data.head())  # 前五行
print(data.tail())  # 后五行

这就像在快速翻阅书的前几页和最后几页,了解内容概要。

回到首页  

4. 列名更改:rename()

data.rename(columns={'old_name': 'new_name'}, inplace=True)

回到首页  

5.条件选择

找到特定条件的行

filtered_data = data[data['age'] > 18]

这行代码,就像是在人群中寻找成年人,只留下符合条件的。

回到首页  

6. 统计分析

统计某行数据,例如求平均值

average_age = data['age'].mean()

一行代码,数据背后的秘密就浮出水面了。

回到首页  

7. 一分为二

遇到一列数据里藏着两部分内容?用str.split()拆分它们。

data[['first_name', 'last_name']] = data['name'].str.split(' ', expand=True)

就像变魔术,一列瞬间变成两列。

回到首页  

8. 合并数据:pd.concat()、merge()

有两份数据要合在一起?pd.concat()merge()是你的左右手。

combined_data = pd.concat([data1, data2], ignore_index=True)

或者,基于某个键合并:

merged_data = pd.merge(data1, data2, on='common_key')

合并,让数据的力量倍增。

回到首页  

9. 布尔索引

想要特定范围的值?布尔索引来帮忙!

subset = data[(data['age'] > 18) & (data['age'] < 30)]

这就像设置了一个门槛,只让特定年龄段的数据通过。

回到首页  

10. 去除空值:dropna()、fillna()

空值是数据清洗的常客,dropna()fillna()是你的清洁工具。

clean_data = data.dropna()  # 删除空值行
# 或者
data.fillna(value='default', inplace=True)  # 用默认值填充

保持数据的整洁,分析才更准确。

回到首页  

11. 排序操作

按年龄升序排列?

sorted_data = data.sort_values(by='age', ascending=True)

就像学生们按身高排队,井然有序。

回到首页  

12. 保存成果:to_csv()

处理完毕,别忘了保存!

data.to_csv('processed_data.csv', index=False)

回到首页  

13. 利用查询功能:query()

有时,我们需要基于复杂的逻辑筛选数据。query()函数可以帮你用接近自然语言的方式进行筛选。

complex_filtered = data.query('age > 18 and city == "New York"')

这就像在对数据说:“给我找出所有年龄大于18且居住在纽约的人。”

回到首页  

14. 处理日期时间:pd.to_datetime()

CSV中常有日期时间数据,pd.to_datetime()是你的时光机。

data['date'] = pd.to_datetime(data['date'])

这行代码能让字符串形式的日期时间瞬间活过来,便于进一步的时间分析。

回到首页  

15.透视表的魅力:pivot table

想要快速汇总数据?透视表(pivot table)来帮忙。

pivot_table = data.pivot_table(index='city', values='age', aggfunc='mean')

这就像创建了一个小报告,告诉你每个城市人们的平均年龄。

回到首页  

16. 掌握元素的类型

有时,你需要改变列的数据类型,比如将字符串转为整型。

data['age'] = data['age'].astype(int)

这一变,数据的性质就不同了,适合更精准的数学运算。

回到首页  

17. 理解join

除了基本的合并,pd.DataFrame.join()提供了更多灵活性,特别是在处理具有相同索引的DataFrame时。

left.join(right, how='inner')  # 内连接

选择合适的连接方式,可以让你的数据合并更加精准高效。

回到首页  

18. 图形化理解

虽然不是直接处理CSV,但可视化可以帮助你更好地理解数据。

import matplotlib.pyplot as plt

data['age'].hist()
plt.show()

回到首页  

一个简单的直方图,让你一眼看出年龄分布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猪猪爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值