日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

Python 處理 CSV 文件的 12 個高效技巧

來源: 責(zé)編: 時間:2024-06-24 17:14:06 161觀看
導(dǎo)讀今天,我們的Python之旅,目標(biāo)是那片由逗號分隔的寶藏——CSV文件。別看它簡單,掌握這些技巧,你的數(shù)據(jù)處理能力將直線上升,輕松駕馭千行萬列的數(shù)據(jù)海洋。讓我們一起,用Python的魔力,讓CSV舞動起來吧!1. 初次見面,你好,CSV!安裝pand

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

lRg28資訊網(wǎng)——每日最新資訊28at.com

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

安裝pandas,是這場冒險的起點。它,是Python數(shù)據(jù)分析的瑞士軍刀。lRg28資訊網(wǎng)——每日最新資訊28at.com

pip install pandas

導(dǎo)入我們的英雄——pandas,并親切地叫它pd。lRg28資訊網(wǎng)——每日最新資訊28at.com

import pandas as pd

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

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

這一行代碼,就像漁網(wǎng)一樣,把CSV里的所有數(shù)據(jù)撈到一個DataFrame中。DataFrame,就是你的數(shù)據(jù)工作臺。lRg28資訊網(wǎng)——每日最新資訊28at.com

3. 快速瀏覽:頭尾看看

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

這就像在快速翻閱書的前幾頁和最后幾頁,了解內(nèi)容概要。lRg28資訊網(wǎng)——每日最新資訊28at.com

4. 指名道姓:列名操作

想改列名?簡單!lRg28資訊網(wǎng)——每日最新資訊28at.com

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

就像給朋友換個昵稱,從此“舊貌換新顏”。lRg28資訊網(wǎng)——每日最新資訊28at.com

5. 篩選高手:條件選擇

想要特定條件的行?試試這個:lRg28資訊網(wǎng)——每日最新資訊28at.com

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

這行代碼,就像是在人群中尋找成年人,只留下符合條件的。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

計算平均年齡?Python來幫忙!lRg28資訊網(wǎng)——每日最新資訊28at.com

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

一行代碼,數(shù)據(jù)背后的秘密就浮出水面了。lRg28資訊網(wǎng)——每日最新資訊28at.com

7. 分列大師:一分為二

遇到一列數(shù)據(jù)里藏著兩部分內(nèi)容?用str.split()拆分它們。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

就像變魔術(shù),一列瞬間變成兩列。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

有兩份數(shù)據(jù)要合在一起?pd.concat()或merge()是你的左右手。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

或者,基于某個鍵合并:lRg28資訊網(wǎng)——每日最新資訊28at.com

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

合并,讓數(shù)據(jù)的力量倍增。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

想要特定范圍的值?布爾索引來幫忙!lRg28資訊網(wǎng)——每日最新資訊28at.com

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

這就像設(shè)置了一個門檻,只讓特定年齡段的數(shù)據(jù)通過。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

空值是數(shù)據(jù)清洗的常客,dropna()和fillna()是你的清潔工具。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

保持?jǐn)?shù)據(jù)的整潔,分析才更準(zhǔn)確。lRg28資訊網(wǎng)——每日最新資訊28at.com

11. 排隊站好:排序操作

按年齡升序排列?lRg28資訊網(wǎng)——每日最新資訊28at.com

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

就像學(xué)生們按身高排隊,井然有序。lRg28資訊網(wǎng)——每日最新資訊28at.com

12. 再見,CSV:保存成果

處理完畢,別忘了保存!lRg28資訊網(wǎng)——每日最新資訊28at.com

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

這樣,你的辛苦工作就被永久記錄下來了,下次可以直接繼續(xù)。lRg28資訊網(wǎng)——每日最新資訊28at.com

高級技巧

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

有時,我們需要基于復(fù)雜的邏輯篩選數(shù)據(jù)。query()函數(shù)可以幫你用接近自然語言的方式進(jìn)行篩選。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

這就像在對數(shù)據(jù)說:“給我找出所有年齡大于18且居住在紐約的人。”lRg28資訊網(wǎng)——每日最新資訊28at.com

14. 時間旅行:處理日期時間

CSV中常有日期時間數(shù)據(jù),pd.to_datetime()是你的時光機(jī)。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

這行代碼能讓字符串形式的日期時間瞬間活過來,便于進(jìn)一步的時間分析。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

想要快速匯總數(shù)據(jù)?透視表(pivot table)來幫忙。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

這就像創(chuàng)建了一個小報告,告訴你每個城市人們的平均年齡。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

有時,你需要改變列的數(shù)據(jù)類型,比如將字符串轉(zhuǎn)為整型。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

這一變,數(shù)據(jù)的性質(zhì)就不同了,適合更精準(zhǔn)的數(shù)學(xué)運算。lRg28資訊網(wǎng)——每日最新資訊28at.com

17. 高級合并:理解join的魔法

除了基本的合并,pd.DataFrame.join()提供了更多靈活性,特別是在處理具有相同索引的DataFrame時。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

選擇合適的連接方式,可以讓你的數(shù)據(jù)合并更加精準(zhǔn)高效。lRg28資訊網(wǎng)——每日最新資訊28at.com

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

雖然不是直接處理CSV,但可視化可以幫助你更好地理解數(shù)據(jù)。lRg28資訊網(wǎng)——每日最新資訊28at.com

import matplotlib.pyplot as pltdata['age'].hist()plt.show()

一個簡單的直方圖,讓你一眼看出年齡分布。lRg28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-96046-0.htmlPython 處理 CSV 文件的 12 個高效技巧

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 如何編寫優(yōu)雅的 Controller 代碼?

下一篇: Rust 又發(fā)布新的 1.79.0 穩(wěn)定版本了!

標(biāo)簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 桑日县| 沅江市| 临汾市| 卓资县| 思茅市| 璧山县| 万州区| 宣威市| 名山县| 东至县| 沽源县| 随州市| 通化县| 泸西县| 宜春市| 阿勒泰市| 石景山区| 大悟县| 嘉祥县| 磴口县| 临沂市| 静宁县| 钦州市| 三台县| 遂宁市| 峨山| 漾濞| 高州市| 万全县| 水富县| 桃源县| 邯郸县| 黎平县| 曲沃县| 靖宇县| 米泉市| 通州市| 时尚| 砀山县| 宁国市| 商洛市|