如何利用python創(chuàng)建、讀取和修改CSV數(shù)據(jù)文件
簡(jiǎn)單展示如何利用python中的pandas庫(kù)創(chuàng)建、讀取、修改CSV數(shù)據(jù)文件
1 寫(xiě)入CSV文件
import numpy as np
import pandas as pd
# -----create an initial numpy array----- #
data = np.zeros((8,4))
# print(data.dtype)
# print(type(data))
# print(data.shape)
# -----from array to dataframe----- #
df = pd.DataFrame(data)
# print(type(df))
# print(df.shape)
# print(df)
# -----edit columns and index----- #
df.columns = ['A', 'B', 'C', 'D']
df.index = range(data.shape[0])
df.info()
# -----save dataframe as csv----- #
csv_save_path='./data_.csv'
df.to_csv(csv_save_path, sep=',', index=False, header=True)
# -----check----- #
df = pd.read_csv(csv_save_path)
print('-' * 25)
print(df)
輸出如下:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 4 columns):
A 8 non-null float64
B 8 non-null float64
C 8 non-null float64
D 8 non-null float64
dtypes: float64(4)
memory usage: 336.0 bytes
-------------------------
A B C D
0 0.0 0.0 0.0 0.0
1 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0
3 0.0 0.0 0.0 0.0
4 0.0 0.0 0.0 0.0
5 0.0 0.0 0.0 0.0
6 0.0 0.0 0.0 0.0
7 0.0 0.0 0.0 0.0
2 讀取CSV文件
import pandas as pd import numpy as np csv_path = './data_.csv' # -----saved as dataframe----- # data = pd.read_csv(csv_path) # ---if index is given in csv file, you can use next line of code to replace the previous one--- # data = pd.read_csv(csv_path, index_col=0) print(type(data)) print(data) print(data.shape) # -----saved as array----- # data_ = np.array(data) # data_ = data.values print(type(data_)) print(data_) print(data_.shape)
輸出如下:
<class 'pandas.core.frame.DataFrame'>
A B C D
0 0.0 0.0 0.0 0.0
1 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0
3 0.0 0.0 0.0 0.0
4 0.0 0.0 0.0 0.0
5 0.0 0.0 0.0 0.0
6 0.0 0.0 0.0 0.0
7 0.0 0.0 0.0 0.0
(8, 4)
<class 'numpy.ndarray'>
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
(8, 4)
3 修改CSV文件
import pandas as pd
import numpy as np
csv_path = './data_.csv'
df = pd.read_csv(csv_path)
# -----edit columns and index----- #
df.columns = ['X1', 'X2', 'X3', 'Y']
df.index = range(df.shape[0])
# df.index = [i+1 for i in range(df.shape[0])]
# -----columns operations----- #
Y = df['Y']
df['X4'] = [4 for i in range(df.shape[0])] # add
df['X5'] = [5 for i in range(df.shape[0])]
# print(df)
df.drop(columns='Y', inplace=True) # delete
# print(df)
df['X1'] = [i+1 for i in range(df.shape[0])] # correct --(1)
# df.iloc[:df.shape[0], 0] = [i+1 for i in range(df.shape[0])]
# correct --(2)
# print(df)
df['Y'] = Y_temp
# print(df)
# -----rows operations----- #
df.loc[df.shape[0]] = [i+2 for i in range(6)] # add
# print(df)
df.drop(index=4, inplace=True) # delete
# print(df)
df.loc[0] = [i+1 for i in range(df.shape[1])] # correct
# print(df)
# -----edit index again after rows operations!!!----- #
df.index = range(df.shape[0])
# -----save dataframe as csv----- #
csv_save_path='./data_copy.csv'
df.to_csv(csv_save_path, sep=',', index=False, header=True)
print(df)
輸出如下:
X1 X2 X3 X4 X5 Y
0 1.0 2.0 3.0 4 5 6.0
1 2.0 0.0 0.0 4 5 0.0
2 3.0 0.0 0.0 4 5 0.0
3 4.0 0.0 0.0 4 5 0.0
4 6.0 0.0 0.0 4 5 0.0
5 7.0 0.0 0.0 4 5 0.0
6 8.0 0.0 0.0 4 5 0.0
7 2.0 3.0 4.0 5 6 7.0
參考資料
csv文件的讀寫(xiě)與修改還可以通過(guò)python的csv庫(kù)來(lái)實(shí)現(xiàn)
python中csv文件的創(chuàng)建、讀取、修改等操作總結(jié)
總結(jié)
到此這篇關(guān)于如何利用python創(chuàng)建、讀取和修改CSV數(shù)據(jù)文件的文章就介紹到這了,更多相關(guān)python創(chuàng)建讀取修改CSV內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python一行代碼可直接使用最全盤(pán)點(diǎn)
本文盤(pán)點(diǎn)一些Python中常用的一行(不限于一行)代碼,可直接用在日常編碼實(shí)踐中,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python實(shí)現(xiàn)對(duì)二維碼數(shù)據(jù)進(jìn)行壓縮
當(dāng)前二維碼的應(yīng)用越來(lái)越廣泛,包括疫情時(shí)期的健康碼也是應(yīng)用二維碼的典型案例。本文的目標(biāo)很明確,就是使用python,實(shí)現(xiàn)一張二維碼顯示更多信息,代碼簡(jiǎn)單實(shí)用,感興趣的可以了解一下2023-02-02
Python使用Flask編寫(xiě)一個(gè)網(wǎng)站的代碼指南
使用Flask編寫(xiě)一個(gè)網(wǎng)站是一個(gè)相對(duì)簡(jiǎn)單且有趣的過(guò)程,Flask是一個(gè)用Python編寫(xiě)的輕量級(jí)Web應(yīng)用框架,它易于上手,同時(shí)也非常強(qiáng)大,適合構(gòu)建從簡(jiǎn)單的博客到復(fù)雜的Web應(yīng)用的各種項(xiàng)目,以下是一個(gè)使用Flask編寫(xiě)簡(jiǎn)單網(wǎng)站的指南,包括代碼示例,需要的朋友可以參考下2024-11-11
Python+wxauto實(shí)現(xiàn)微信自動(dòng)化操作
在眾多自動(dòng)化工具中,Python的wxauto庫(kù)以其強(qiáng)大的功能和簡(jiǎn)單易用的特點(diǎn),為我們打開(kāi)了微信自動(dòng)化操作的大門(mén),下面我們就來(lái)看看它的具體操作吧2025-02-02
Django高級(jí)編程之自定義Field實(shí)現(xiàn)多語(yǔ)言
這篇文章主要介紹了Django高級(jí)編程之自定義Field實(shí)現(xiàn)多語(yǔ)言,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
總結(jié)python實(shí)現(xiàn)父類調(diào)用兩種方法的不同
最近在工作中實(shí)現(xiàn)父類調(diào)用的時(shí)候發(fā)現(xiàn)了一個(gè)錯(cuò)誤,然后通過(guò)分析實(shí)踐總結(jié)出來(lái)了,下面這篇文章主要給大家總結(jié)了python中實(shí)現(xiàn)父類調(diào)用兩種方法的不同之處,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-01-01
python實(shí)現(xiàn)對(duì)AES加密的視頻數(shù)據(jù)流解密的方法
密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn)(Advanced?Encryption?Standard,AES),又稱Rijndael加密法,這篇文章主要介紹了用python實(shí)現(xiàn)對(duì)AES加密的視頻數(shù)據(jù)流解密,需要的朋友可以參考下2023-02-02
python 爬取吉首大學(xué)網(wǎng)站成績(jī)單
python簡(jiǎn)單爬蟲(chóng),爬取吉首大學(xué)成績(jī)單,學(xué)校的成績(jī)單居然不支持導(dǎo)出,太坑了,算個(gè)績(jī)點(diǎn)居然還要手打,我吐了.花2個(gè)多小時(shí)寫(xiě)了此python程序來(lái)生成可方便求和平均的Excel文件,幫助JSU學(xué)子脫離手算煩惱...2021-06-06

