文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-11-29 21:07

关注

1. 初次见面,你好,CSV!

安装pandas,是这场冒险的起点。它,是Python数据分析的瑞士军刀。

pip install pandas

导入我们的英雄——pandas,并亲切地叫它pd。

import pandas as pd

2. 一网打尽:读取CSV

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

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

3. 快速浏览:头尾看看

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

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

4. 指名道姓:列名操作

想改列名?简单!

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

就像给朋友换个昵称,从此“旧貌换新颜”。

5. 筛选高手:条件选择

想要特定条件的行?试试这个:

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

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

6. 数字游戏:统计分析

计算平均年龄?Python来帮忙!

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

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

7. 分列大师:一分为二

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

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

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

8. 合纵连横:合并数据

有两份数据要合在一起?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()是你的清洁工具。

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

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

11. 排队站好:排序操作

按年龄升序排列?

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

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

12. 再见,CSV:保存成果

处理完毕,别忘了保存!

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

这样,你的辛苦工作就被永久记录下来了,下次可以直接继续。

高级技巧

13. 高效过滤:利用查询功能

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

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

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

14. 时间旅行:处理日期时间

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

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

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

15. 数据透视:透视表的魅力

想要快速汇总数据?透视表(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()

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

来源:手把手PythonAI编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯