自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python 處理 CSV 文件的 12 個(gè)高效技巧

開發(fā)
別看CSV文件簡單,掌握這些技巧,你的數(shù)據(jù)處理能力將直線上升,輕松駕馭千行萬列的數(shù)據(jù)海洋。讓我們一起,用Python的魔力,讓CSV舞動(dòng)起來吧!

今天,我們的Python之旅,目標(biāo)是那片由逗號(hào)分隔的寶藏——CSV文件。別看它簡單,掌握這些技巧,你的數(shù)據(jù)處理能力將直線上升,輕松駕馭千行萬列的數(shù)據(jù)海洋。讓我們一起,用Python的魔力,讓CSV舞動(dòng)起來吧!

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

安裝pandas,是這場冒險(xiǎn)的起點(diǎn)。它,是Python數(shù)據(jù)分析的瑞士軍刀。

pip install pandas

導(dǎo)入我們的英雄——pandas,并親切地叫它pd。

import pandas as pd

2. 一網(wǎng)打盡:讀取CSV

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

這一行代碼,就像漁網(wǎng)一樣,把CSV里的所有數(shù)據(jù)撈到一個(gè)DataFrame中。DataFrame,就是你的數(shù)據(jù)工作臺(tái)。

3. 快速瀏覽:頭尾看看

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

這就像在快速翻閱書的前幾頁和最后幾頁,了解內(nèi)容概要。

4. 指名道姓:列名操作

想改列名?簡單!

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

就像給朋友換個(gè)昵稱,從此“舊貌換新顏”。

5. 篩選高手:條件選擇

想要特定條件的行?試試這個(gè):

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

這行代碼,就像是在人群中尋找成年人,只留下符合條件的。

6. 數(shù)字游戲:統(tǒng)計(jì)分析

計(jì)算平均年齡?Python來幫忙!

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

一行代碼,數(shù)據(jù)背后的秘密就浮出水面了。

7. 分列大師:一分為二

遇到一列數(shù)據(jù)里藏著兩部分內(nèi)容?用str.split()拆分它們。

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

就像變魔術(shù),一列瞬間變成兩列。

8. 合縱連橫:合并數(shù)據(jù)

有兩份數(shù)據(jù)要合在一起?pd.concat()或merge()是你的左右手。

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

或者,基于某個(gè)鍵合并:

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

合并,讓數(shù)據(jù)的力量倍增。

9. 精準(zhǔn)篩選:布爾索引

想要特定范圍的值?布爾索引來幫忙!

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

這就像設(shè)置了一個(gè)門檻,只讓特定年齡段的數(shù)據(jù)通過。

10. 數(shù)據(jù)清洗:去除空值

空值是數(shù)據(jù)清洗的常客,dropna()和fillna()是你的清潔工具。

clean_data = data.dropna()  # 刪除空值行
# 或者
data.fillna(value='default', inplace=True)  # 用默認(rèn)值填充

保持?jǐn)?shù)據(jù)的整潔,分析才更準(zhǔn)確。

11. 排隊(duì)站好:排序操作

按年齡升序排列?

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

就像學(xué)生們按身高排隊(duì),井然有序。

12. 再見,CSV:保存成果

處理完畢,別忘了保存!

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

這樣,你的辛苦工作就被永久記錄下來了,下次可以直接繼續(xù)。

高級(jí)技巧

13. 高效過濾:利用查詢功能

有時(shí),我們需要基于復(fù)雜的邏輯篩選數(shù)據(jù)。query()函數(shù)可以幫你用接近自然語言的方式進(jìn)行篩選。

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

這就像在對數(shù)據(jù)說:“給我找出所有年齡大于18且居住在紐約的人。”

14. 時(shí)間旅行:處理日期時(shí)間

CSV中常有日期時(shí)間數(shù)據(jù),pd.to_datetime()是你的時(shí)光機(jī)。

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

這行代碼能讓字符串形式的日期時(shí)間瞬間活過來,便于進(jìn)一步的時(shí)間分析。

15. 數(shù)據(jù)透視:透視表的魅力

想要快速匯總數(shù)據(jù)?透視表(pivot table)來幫忙。

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

這就像創(chuàng)建了一個(gè)小報(bào)告,告訴你每個(gè)城市人們的平均年齡。

16. 數(shù)據(jù)類型轉(zhuǎn)換:掌握元素的真身

有時(shí),你需要改變列的數(shù)據(jù)類型,比如將字符串轉(zhuǎn)為整型。

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

這一變,數(shù)據(jù)的性質(zhì)就不同了,適合更精準(zhǔn)的數(shù)學(xué)運(yùn)算。

17. 高級(jí)合并:理解join的魔法

除了基本的合并,pd.DataFrame.join()提供了更多靈活性,特別是在處理具有相同索引的DataFrame時(shí)。

left.join(right, how='inner')  # 內(nèi)連接

選擇合適的連接方式,可以讓你的數(shù)據(jù)合并更加精準(zhǔn)高效。

18. 數(shù)據(jù)預(yù)覽:圖形化理解

雖然不是直接處理CSV,但可視化可以幫助你更好地理解數(shù)據(jù)。

import matplotlib.pyplot as plt

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

一個(gè)簡單的直方圖,讓你一眼看出年齡分布。

責(zé)任編輯:趙寧寧 來源: 手把手PythonAI編程
相關(guān)推薦

2023-11-30 16:05:17

2024-05-28 14:45:00

2024-09-06 17:32:55

字符串Python

2025-01-13 00:26:53

2009-10-27 09:09:06

Eclipse技巧

2024-04-28 11:39:17

紹csvkit數(shù)據(jù)分析

2023-10-17 16:24:27

PythonCSV

2019-10-11 10:22:36

Linux命令

2022-05-04 12:44:57

Python編程語言

2024-06-24 00:05:00

Python代碼

2022-07-25 11:33:48

Python大文件

2019-03-19 13:44:41

Python編程技巧編程語言

2022-02-24 10:05:20

Python編程語言代碼

2024-02-26 16:40:58

2021-02-23 10:48:30

Python代碼開發(fā)

2018-08-23 17:15:10

編程語言Python數(shù)據(jù)分析

2021-01-12 11:37:09

Python編程語言開發(fā)

2024-09-23 21:05:45

2024-05-22 09:29:43

2024-01-03 14:54:56

PythonPandas數(shù)據(jù)處理工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)