導航:首頁 > 文件類型 > pandas讀取文本文件寫入excel

pandas讀取文本文件寫入excel

發布時間:2023-02-21 11:31:11

㈠ Python 如何把json數據寫入excel

csv就是個抄普通的文本文件。不存在多個sheet。所以:沒法導出帶多個sheet的csv文件。詳見:【記錄】使用Python讀取/導出(寫入)CSV文件帶多個sheet的,是excel文件。用python導出,帶多個的excel,說實話我沒弄過。但是弄過單個sheet的

㈡ python如何讀取excel裡面某一整列內容並修改

可以使用 Python 中的 pandas 庫來讀取 Excel 文件裡面某一整列內容並修改。
首先,需要安裝 pandas 庫。在命令行中輸入:
pip install pandas
然後可以使用 pandas 的 read_excel 函數讀取 Excel 文件,並使用 iloc 屬性獲取某一整列內容。下面是一個示例代碼
import pandas as pd
# 讀取 Excel 文件
df = pd.read_excel("your_file.xlsx")
# 獲取某一整列內容
column_data = df.iloc[:, 2]
# 2 是列的編號,從 0 開始# 修改某一整列內容
column_data = column_data + 1
# 更新到 Excel 文件
df.iloc[:, 2] = column_data
df.to_excel("your_file.xlsx", index=False)

上面的代碼會讀取「your_file.xlsx」這個excel文件,獲取第3列的內容並修改,最後將修改後的內容重新寫入到excel文件中,注意這里沒有保留原來的數據,如果需要保留原來的數據需要另外操作。
需要注意的是,若要讀取的excel文件中有多個工作表,需要使用 pd.read_ex

㈢ python將txt導入到excel

你說的是使用python讀取dat,txt類型文件或excel文件吧,這里我不清楚dat類型文件是什麼類型的文件,數據格式是怎樣的,所以主要講一下如何簡單快捷的讀取txt文件指定的列數據和excel文件指定的列數據,主要用到numpy,pandas這兩個包,這兩個主要做科學計算和數據處理,python處理實驗數據,經常要用到這兩個包,至於dat類型的文件,我提供一種可能的思路,實驗環境win7+python3.6+pycharm,主要步驟如下:

1.讀取txt文件指定列。這里主要用到numpy這個包,以及其包含的loadtxt函數,讀取的前提是txt文件不是完全的雜亂無章,沒有一點格式、結構可循,如果真的是這樣,建議手動調整一下格式,使其盡量保持一定的格式結果,然後再讀取,不然的話,會出現錯誤,我這里新建了一個txt文件,樣本內容如下,每行的數據以3個空格為間隔,一般情況下,實驗所產生的txt數據都是有一定結構的:

對應讀取的代碼如下,這里以讀取1,3列數據為例,很簡單:

程序運行結果如下,已經成功列印出1,3列數據:

2.讀取excel文件指定的列。這里主要用到pandas這個包,以及其包含的read_excel函數,因為excel數據本來就是有一定格式的,所以讀起來就簡單了許多,這里我新建了一個excel文件,樣本數據如下:

對應讀取的代碼如下,這里以讀取1,3列數據為例,很簡單:

程序運行結果如下,已經成功列印出1,3列數據:

3.至於dat文件的話,這里提供一種可能思路,如果dat文件可以直接用記事打開的話,並且數據可以正常顯示,沒有亂碼的情況下,有一定的格式可循,可以將其看作一個普通文件,使用python的open函數進行讀取,將讀取的數據存儲在一個list列表中,或者使用特定軟體將其轉換成txt或excel文件後,再進行讀取。如果是特殊類型的文件,這個就不好說了,這里就要自己想辦法了。

至於後面如何進行可視化繪圖,我就不多說了,像matplotlib等數據可視化包都可以。至此,就完成了這3中類型文件的讀取,總的來說,實現起來不難,都有現成的包可直接利用,方便了許多,當然你也可以用其他包或者自己來實現,這個就因人而異了,只要能正常的讀取實驗數據就行,網上也有這方面的資料,你可以參考一下,希望以上分享的內容能對你有所幫助吧。

㈣ 如何用pandas庫吧內容寫入簡歷模板中

兩種方法介紹如下:

1、如果是將整個DafaFrame寫入excel,則調用to_excel()方法即可實現,示例代碼如下:

# output為要保存的Dataframe
output.to_excel('保存路徑 + 文件名.xlsx')
2、有多個數據需要寫入多個excel的工作簿,這時需要調用通過ExcelWriter()方法打開一個已經存在的excel表格作為writer,然後通過to_excel()方法將需要保存的數據逐個寫入excel,最後關閉writer。

㈤ 請問在Pandas用read_excel函數讀取數據

利用Python的pandas數據結構來讀取excel表格的數據,部分代碼如下:

#-*- coding:utf-8 -*-

import pandas as pd

import matplotlib.pyplot as plt

catering_data="catering_sale.xls"

data=pd.read_excel(catering_data,index_col=u'日期')

#讀取數據,指定"日期"列為索引列;

大多數書上都是這樣寫的,但是在Python2.7上運行時出現錯誤。(沒有在Python3.x版本試過)

出現了如下問題:

這里寫圖片描述

使用help(pd.read_excel)發現參數中有必選參數sheetname,加入到函數中,代碼如下:

#-*- coding:utf-8 -*-

import pandas as pd

import matplotlib.pyplot as plt

catering_data="catering_sale.xls"

data=pd.read_excel(catering_data,sheetname=0,index_col=u'日期')

運行成功。

sheetname=0 的意思是:讀取xls文件中的第一個表格。(假設文件中有很多個表格)

另外,也可以將文件轉換成csv格式,就不需要這個參數了。代碼如下:

catering_data="catering_sale.csv"

data=pd.read_csv(catering_data)

1、讀取txt數據

In [1]: import pandas as pd

In [2]: mydata_txt = pd.read_csv('C:\test_code.txt',sep = ' ',encoding = 'utf-8')

對於中文的文本文件常容易因為編碼的問題而讀取失敗,正如上圖所示。遇到這樣的編碼問題該如何處置呢?解決辦法有兩種情況:

1)當原始文件txt或csv的數據不是uft8格式時,需要另存為utf8格式編碼;

2)如果原始的數據文件就是uft8格式,為了正常讀入,需要將read_csv函數的參數encoding設置為utf-8

將原始數據另存為utf8格式的數據,重新讀入txt數據

In [3]: mydata_txt = pd.read_csv('C:\test.txt',sep = ' ',encoding = 'utf-8')

In [4]: mydata_txt

很順利,txt文本文件數據就這樣進入了Python的口袋裡了。

2、讀取csv數據

csv文本文件是非常常用的一種數據存儲格式,而且其存儲量要比Excel電子表格大很多,下面我們就來看看如何利用Python讀取csv格式的數據文件:

In [5]: mydata_csv = pd.read_csv('C:\test.csv',sep = ',',encoding = 'utf-8')

In [6]: mydata_csv

如果你善於總結的話,你會發現,txt文件和csv文件均可以通過pandas模塊中的read_csv函數進行讀取。該函數有20多個參數,類似於R中的read.table函數,如果需要查看具體的參數詳情,可以查看幫助文檔:help(pandas.read_csv)

㈥ python 操作excel 讀 寫 xlsx

原文非常清晰,全程無bug,調試通過,留作記錄以防丟失

一、xlrd和xlwt

使用之前需要先安裝,windows上如果直接在cmd中運行python則需要先執行pip3 install xlrd和pip3 install xlwt,如果使用pycharm則需要在項目的解釋器中安裝這兩個模塊,File-Settings-Project:layout-Project Interpreter,點擊右側界面的+號,然後搜索xlrd和xlwt,然後點擊Install Package進行安裝。

對於excel來說,整個excel文件稱為工作簿,工作簿中的每個頁稱為工作表,工作表又由單元格組成。

對於xlrd和xlwt,行數和列數從0開始,單元格的行和列也從0開始,例如sheet.row_values(2)表示第三行的內容,sheet.cell(1,2).value表示第二行第三列單元格的內容。

1.xlrd模塊讀取excel文件

使用xlrd模塊之前需要先導入import xlrd,xlrd模塊既可讀取xls文件也可讀取xlsx文件。

獲取工作簿對象 :book = xlrd.open_workbook('excel文件名稱')

獲取所有工作表名稱 :names = book.sheet_names(),結果為列表

根據索引獲取工作表對象 :sheet = book.sheet_by_index(i)

根據名稱獲取工作表對象 :sheet = book.sheet_by_name('工作表名稱')

獲取工作錶行數 :rows = sheet.nrows

獲取工作表列數 :cols = sheet.ncols

獲取工作表某一行的內容 :row = sheet.row_values(i) ,結果為列表   【sheet.row(i),列表】

獲取工作表某一列的內容 :col = sheet.col_values(i)  結果為列表   【sheet.col(i),列表】

獲取工作表某一單元格的內容 :cell = sheet.cell_value(m,n)、 sheet.cell(m,n).value、sheet.row(m)[n].value,sheet.col(n)[m].value,結果為字元串或數值    【sheet.cell(0,0),xlrd.sheet.Cell對象】

示例:假設在py執行文件同層目錄下有一fruit.xls文件,有三個sheet頁Sheet1、Sheet2、Sheet3,其中Sheet1內容如下:

import xlrd

book = xlrd.open_workbook('fruit.xls')print('sheet頁名稱:',book.sheet_names())

sheet = book.sheet_by_index(0)

rows = sheet.nrows

cols = sheet.ncolsprint('該工作表有%d行,%d列.'%(rows,cols))print('第三行內容為:',sheet.row_values(2))print('第二列內容為%s,數據類型為%s.'%(sheet.col_values(1),type(sheet.col_values(1))))print('第二列內容為%s,數據類型為%s.'%(sheet.col(1),type(sheet.col(1))))print('第二行第二列的單元格內容為:',sheet.cell_value(1,1))print('第三行第二列的單元格內容為:',sheet.cell(2,1).value)print('第五行第三列的單元格內容為:',sheet.row(4)[2].value)print('第五行第三列的單元格內容為%s,數據類型為%s'%(sheet.col(2)[4].value,type(sheet.col(2)[4].value)))print('第五行第三列的單元格內容為%s,數據類型為%s'%(sheet.col(2)[4],type(sheet.col(2)[4])))# 執行結果# sheet頁名稱: ['Sheet1', 'Sheet2', 'Sheet3']# 該工作表有5行,3列.# 第三行內容為: ['梨', 3.5, 130.0]# 第二列內容為['單價/元', 8.0, 3.5, 4.5, 3.8],數據類型為<class 'list'>.# 第二列內容為[text:'單價/元', number:8.0, number:3.5, number:4.5, number:3.8],數據類型為<class 'list'>.# 第二行第二列的單元格內容為: 8.0# 第三行第二列的單元格內容為: 3.5# 第五行第三列的單元格內容為: 300.0# 第五行第三列的單元格內容為300.0,數據類型為<class 'float'># 第五行第三列的單元格內容為number:300.0,數據類型為<class 'xlrd.sheet.Cell'>

可以看出通過sheet.row(i)、sheet.col(i)也可獲取行或列的內容,並且結果也是一個列表,但是列表中的每一項類似字典的鍵值對,形式為數據類型:值。

而sheet.cell(0,0)獲取單元格內容,結果是一個鍵值對,並且是一個xlrd.sheet.Cell對象。

2.xlwt寫入excel文件

使用xlwt模塊之前需要先導入import xlwt,xlwt模塊只能寫xls文件,不能寫xlsx文件(寫xlsx程序不會報錯,但最後文件無法直接打開,會報錯)。

創建工作簿 :book = xlwt.Workbook(),如果寫入中文為亂碼,可添加參數encoding = 'utf-8'

創建工作表 :sheet = book.add_sheet('Sheet1')

向單元格寫入內容 :sheet.write(m,n,'內容1')、sheet.write(x,y,'內容2')

保存工作簿 :book.save('excel文件名稱'),默認保存在py文件相同路徑下,如果該路徑下有相同文件,會被新創建的文件覆蓋,即xlwt不能修改文件。

import xlwt

book = xlwt.Workbook()

sheet = book.add_sheet('Sheet1')

sheet.write(0,0,'hello')

sheet.write(1,0,'你好')

book.save('hello.xls')

逐個單元格寫入excel比較麻煩,可以按行或者列寫入。

import xlwt

proj = ['名稱','單價/元','庫存/kg']

fruit = ['蘋果','梨','香蕉','橘子']

price = [8,3.5,4.5,3.8]

storage = [150,130,100,300]

book = xlwt.Workbook()

sheet = book.add_sheet('Sheet1')foriin range(0,len(proj)):

    sheet.write(0,i,proj[i]) #按行插入行標題foriin range(0,len(fruit)):

    sheet.write(i+1,0,fruit[i])#插入第一列水果名稱foriin range(0,len(price)):

    sheet.write(i+1,1,price[i])#插入第二列單價foriin range(0,len(storage)):

    sheet.write(i+1,2,storage[i])#插入第三列庫存book.save('fruit2.xls')

二、openpyxl模塊

openpyxl模塊可實現對excel文件的讀、寫和修改,只能處理xlsx文件,不能處理xls文件,使用之前同樣需要先安裝該模塊,再導入 import openpyxl。

對於openpyxl,行數和列數都從1開始,單元格的行和列也從1開始。例如sheet.cell(1,2).value表示第一行第二列單元格的內容

1.openpyxl讀取excel文件

獲取工作簿對象:book = openpyxl.load_workbook('excel文件名稱')

獲取所有工作表名稱:names = book.sheetnames

獲取工作表對象:sheet1 = book.worksheets[n]、sheet2 = book['工作表名稱']、sheet3 = book[book.sheetnames[n]]

獲取工作表名稱:title = sheet1.title

獲取工作錶行數:rows = sheet1.max_row

獲取工作表列數:cols = sheet1.max_column

獲取某一單元格內容:cell = sheet.cell(1,2).value、sheet['單元格'].value例如sheet['B1'].value

假設有一fruit2.xlsx,除後綴名其他與上述fruit.xls完全一樣

import openpyxl

book = openpyxl.load_workbook('fruit2.xlsx')print('所有sheet頁名稱:',book.sheetnames) 

sheet = book.worksheets[0]

sheet2 = book['Sheet1']

sheet3 = book[book.sheetnames[0]]print('工作表名稱:',sheet3.title)

rows = sheet.max_row

cols = sheet.max_columnprint('該工作表有%d行,%d列.'%(rows,cols))# 執行結果# 所有sheet頁名稱: ['Sheet1', 'Sheet2', 'Sheet3']# 工作表名稱: Sheet1# 該工作表有5行,3列.

2.行和列生成器

對於xlrd模塊來說,可直接通過sheet.row[i]和sheet.col[i]獲取行和列的內容,但是對於openpyxl模塊來說,無法直接獲取某一行或列的內容,openpyxl模塊的sheet.rows和sheet.columns表示行和列的生成器,即generator object,需要通過循環或轉換成列表、元組的形式得到行或列的值。

print(sheet.rows,sheet.columns)forcolin sheet.columns:

    print(col)forrowin sheet.rows:

    foriin row:

        print(i.value,end='')

    print()# 執行結果# <generator object Worksheet._cells_by_row at 0x00000230E011A2A0> <generator object Worksheet._cells_by_col at 0x00000230E102FC00># (<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.A2>, <Cell 'Sheet1'.A3>, <Cell 'Sheet1'.A4>, <Cell 'Sheet1'.A5>)# (<Cell 'Sheet1'.B1>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.B5>)# (<Cell 'Sheet1'.C1>, <Cell 'Sheet1'.C2>, <Cell 'Sheet1'.C3>, <Cell 'Sheet1'.C4>, <Cell 'Sheet1'.C5>)# 名稱  單價/元  庫存/kg# 蘋果  8  150# 梨  3.5  130# 香蕉  4.5  100# 橘子  3.8  300

如果要獲取某一行或者列的內容,可將行、列生成器對象轉換成列表或者元組,再循環列表或者元組得到內容。

前面說過openpyxl模塊的行和列都從1開始,但是由於將生成器轉化成了列表list(sheet.rows),而列表的索引從0開始,因此list(sheet.rows)[1]還是表示第二行的內容,不是第一行的內容。

foriinlist(sheet.rows)[1]:

    print(i.value,end='')print()foriin list(sheet.columns)[0]:

    print(i.value,end='')# 執行結果# 蘋果  8  150# 名稱  蘋果  梨  香蕉  橘子

獲取單元格的內容

print(sheet.cell(1,2).value)#第一行第二列單元格的內容print(sheet['a2'].value)#使用excel單元格的表示法,字母不區分大小寫

3.openpyxl寫excel文件 

創建工作簿 :book = openpyxl.Workbook(),如果寫入中文為亂碼,可添加參數encoding = 'utf-8'

創建工作表: sheet = book.create_sheet('工作表名稱',0),0表示創建的工作表在工作薄最前面

向單元格寫入內容 :sheet.cell(m,n,'內容1')、sheet.cell(x,y,'內容2')

保存工作簿 :book.save('excel文件名稱'),默認保存在py文件相同路徑下,如果該路徑下有相同文件,會被新創建的文件覆蓋。

book = openpyxl.Workbook()

sheet = book.create_sheet('Sheet1',0)

proj = ['名稱','單價/元','庫存/kg']

fruit = ['蘋果','香蕉','梨','橘子']

price = [8,3.5,4.5,3.8]

storage = [150,130,300,100]foriin range(len(proj)):

    sheet.cell(1,i+1,proj[i])foriin range(len(fruit)):

    sheet.cell(i+2,1,fruit[i])foriin range(len(price)):

    sheet.cell(i+2,2,price[i])foriin range(len(storage)):

    sheet.cell(i+2,3,storage[i])

book.save('fruit2.xlsx')

4.openpyxl修改excel文件

sheet.insert_rows(m)和sheet.insert_cols(n)分別表示在第m行、第n列前面插入行、列

sheet.delete_rows(m)和sheet.delete_cols(n)分別表示刪除第m行、第n列

rows = sheet.max_row

sheet.insert_rows(rows+2)

cherry = ['櫻桃',17,80]  forjin cherry:

    sheet.cell(rows+1,cherry.index(j)+1,j)

book.save('fruit2.xlsx')

修改單元格內容:sheet.cell(m,n) = '內容1'或者sheet['B3'] = '內容2' 

sheet.cell(3,2,4)

sheet['B3'] = 5book.save('fruit2.xlsx')

在最後追加行:sheet.append(可迭代對象)

straberry = ['草莓',20,50]

sheet.append(straberry)

book.save('fruit2.xlsx')

三、xlsxwriter 模塊

只能操作xlsx,只能寫。在excel中插入圖片

import matplotlib.pyplot as plt

  2 import pandas as pd

  3 import random

  4 import xlsxwriter

  5

  6 ts = pd.Series(random.randrange(10))

  7 fig = plt.figure()

  8 ax = fig.add_subplot(1,1,1)

  9 ts.plot(ax=ax)

10 fig.savefig('foo.png')

11

12 workbook = xlsxwriter.Workbook('pngxls.xlsx')    # 創建excel文件

13 worksheet1 = workbook.add_worksheet('png')  # 括弧內為工作表表名

14 # 第一個參數是插入的起始單元格,第二個參數是圖片你文件的絕對路徑

15 worksheet1.write('A1','hello')

16 worksheet1.insert_image('B2','foo.png')

18 workbook.close()

xlrd、xlwt和openpyxl處理excel文件,在寫入文件的時候不如pandas簡單,pandas處理excel文件見另外一篇博客 https://www.cnblogs.com/Forever77/p/11298173.html

㈦ pandas寫入excel文件必須是新文件嗎

pandas寫入excel文件不需要是新文件。pandas寫入excel文件可以是舊文件,Pandas是Python處理數據最好用的工具包。處理好了的數據,也可以寫回到原來的或新的Excel文件。pandas是基於NumPy的一種工具,該工具是為解決數據分析任務而創建的。Pandas納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。pandas提供了大量能使我們快速便捷地處理數據的函數和方法。

㈧ pandas格式化輸出文本-excel篇

pandas是一款功能很強大的python模塊,可以直接將數據輸出到excel文件。

對於excel文件數據的輸出,首先需要打開一個excel編輯器writer,然後在不同的sheet寫入數據,此時寫出的數據格式是默認的參數,不同的軟體顯示也會有差異,以下是我運行之後的輸出結果,header自動加粗,添加邊框,居中對齊,內容為常規字體,右對齊。

對於默認的輸出格式,在某些情況下並不能很好的展示數據,不同類型的數據所在位置、對齊方式都有很大差別。格式化輸出能讓我們更好的展示數據,文件的可讀性更高,為了實現這個目的,我們可以在數據輸出的時候指定需要展示的格式。

這部分主要是先將數據輸出到文件,然後修改數據的格式。

首先將數據寫入到pandas_excel.xlsx文件中,然後通過add_formate設定顯示格式,最後以行列為單位進行格式修改,修改之後效果圖如下。

各行/列格式說明如下。

第2行:行高50,字體紅色,加粗,字型大小20,中部居中;
第1列:字體黑色,列寬20,加邊框,左對齊,綠色填充;
第2列:字體綠色,添加下劃線,列寬5,水平居中;
第3列:字體棕色,傾斜,字型大小15,列寬30,右對齊。

已經輸出的數據可以按照上述方法進行設置,若數據還沒有輸出,可以在輸出的同時指定格式。

在新建的test1-sheet中直接寫入格式化的文本,結果見下圖。

以上就是格式化文本輸出到excel的簡要介紹,除了文本格式輸出,還可以對數據顯示方式,比如日期、百分比等進行設置,還可以進行圖表的繪制和插入圖片等,具體的方法可參照參考文章。

[1] https://xlsxwriter.readthedocs.io/working_with_pandas.html
[2] https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#writing-excel-files

㈨ 利用Python中的pandas如何寫入到excel指定的單元格中

利用第三方庫:openpyxl 可以實現,示例代碼如下:
from openpyxl import Workbook
wb = Workbook()
ws = wb['sheet1']
ws['C2'].value = 100

㈩ 怎樣用python讀取txt並按規則寫入excle

先用正則清洗整理數據,再交由pandas進行處理,然後輸出到EXCEL文件。

閱讀全文

與pandas讀取文本文件寫入excel相關的資料

熱點內容
書香門第安卓 瀏覽:395
如何分離編程數值 瀏覽:996
描述文件是幹嘛的 瀏覽:868
文件格式化恢復 瀏覽:353
v顯卡驅動程序源碼 瀏覽:44
iphone5s聲音小怎麼解決 瀏覽:656
文件名文字看不清了 瀏覽:313
電腦找不到cftmon文件 瀏覽:768
qq分組久伴酒伴久伴 瀏覽:697
文檔轉成pdf格式文件 瀏覽:621
離子數據怎麼寫 瀏覽:876
jspapijar官網下載 瀏覽:366
html調用文本文件 瀏覽:921
想學數控編程哪裡好 瀏覽:860
js獲取系統動態時間間隔 瀏覽:165
win10改win7進pe卡住 瀏覽:456
u盤中毒ink文件 瀏覽:718
蘋果換機數據遷移包含哪些數據 瀏覽:234
程式控制可編程直流電源在哪裡 瀏覽:598
容積長寬高的數據從什麼面測量 瀏覽:978

友情鏈接