最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何將DataFrame數(shù)據(jù)寫入csv文件及讀取

 更新時(shí)間:2024年09月18日 10:59:14   作者:geerduo  
在Python中進(jìn)行數(shù)據(jù)處理時(shí),經(jīng)常會(huì)用到CSV文件的讀寫操作,當(dāng)需要將list數(shù)據(jù)保存到CSV文件時(shí),可以使用內(nèi)置的csv模塊,若data是一個(gè)list,saveData函數(shù)能夠?qū)ist中每個(gè)元素存儲(chǔ)在CSV文件的一行,但需要注意的是,默認(rèn)情況下讀取出的CSV數(shù)據(jù)類型為str

一、saveData函數(shù)

import csv
 
def saveData(filePath, data):
 
    with open(filePath, 'w+', newline='') as f:
        writer = csv.writer(f)
        for row in data:
            writer.writerow(row)

如果data是一個(gè)list,saveData函數(shù)會(huì)將list中的每個(gè)元素保存在csv文件中的一行。

但是存在一個(gè)問題:

csv文件中保存的數(shù)據(jù)如果直接讀取出來是str類型,需要進(jìn)行轉(zhuǎn)換

二、將DataFrame寫入csv文件

情況1

將list寫入csv文件

init_configs = []
for i, cluster in enumerate(clusters):
    init_configs.append([f"cluster {i}:"])
    for _, row in cluster.iterrows():
        config = row.tolist()
        init_configs.append(config)
 
saveData('filePath', init_configs)

config = row.tolist()會(huì)將df中每一行數(shù)據(jù)都轉(zhuǎn)變?yōu)閘ist,然后append到init_configs中,通過調(diào)用saveData函數(shù)可以將每一行數(shù)據(jù)表示的list都寫到csv文件中的一行。

這種情況生成的csv文件中每一行的各個(gè)元素之間都是用逗號(hào)隔開。

情況2

將嵌套list寫入csv文件

init_configs = []
for i, cluster in enumerate(clusters):
    init_configs.append([f"cluster {i}:"])
    for _, row in cluster.iterrows():
        config = row.tolist()
        init_configs.append([config])
 
saveData('filePath', init_configs)

這種情況下init_configs中每個(gè)元素是一個(gè)二維list,由于CSV 文件是一種純文本格式,它無法直接存儲(chǔ)列表或其他復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

當(dāng)嘗試將 [[1, 2, 3, 4, 5]] 這個(gè)二維嵌套list寫入CSV文件時(shí),它會(huì)被自動(dòng)轉(zhuǎn)換為字符串形式。

如下:

三、讀取csv文件

情況1

如果按照上面的方法1寫csv文件,可以按照如下方式將內(nèi)容讀出來:

import pandas as pd
 
with open(filePath, 'r') as f:
    lines = f.readlines()
 
filtered_lines = [line for line in lines if not line.startswith('cluster')]
 
configs = []
for line in filtered_lines:
    config = [int(x) for x in line.strip().split(',')]
    configs.append(config)
 
df = pd.DataFrame(configs)

可以用列表表達(dá)式的方式將csv文件中每一行的數(shù)據(jù)轉(zhuǎn)為一個(gè)list。

情況2

如果將整個(gè)list當(dāng)作字符串寫到了csv文件中,可以按照如下方式將內(nèi)容正確地讀出來:

import pandas as pd
import ast
 
with open(filePath, 'r') as f:
    lines = f.readlines()
 
filtered_lines = [line for line in lines if not line.startswith('cluster')]
 
configs = []
for line in filtered_lines:
    config = ast.literal_eval(eval(line))
    configs.append(config)
 
df = pd.DataFrame(configs)

通過config = ast.literal_eval(eval(line))可以將變?yōu)樽址膌ist還原成原本的數(shù)據(jù)形式。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)自動(dòng)化錄制屏幕并生成視頻

    Python實(shí)現(xiàn)自動(dòng)化錄制屏幕并生成視頻

    這篇文章主要為大家詳細(xì)介紹了如何在有另一個(gè)Python進(jìn)程運(yùn)行時(shí),使用Python自動(dòng)錄制屏幕生成視頻,并用以檢查其執(zhí)行情況,感興趣的小伙伴可以了解下
    2026-03-03
  • 圖文詳解OpenCV中光流以及視頻特征點(diǎn)追蹤

    圖文詳解OpenCV中光流以及視頻特征點(diǎn)追蹤

    光流是空間運(yùn)動(dòng)物體在觀察成像平面上的像素運(yùn)動(dòng)的瞬時(shí)速度,是利用圖像序列中像素在時(shí)間域上的變化以及相鄰幀之間的相關(guān)性來找到上一幀跟當(dāng)前幀之間存在的相應(yīng)關(guān)系,這篇文章主要給大家介紹了關(guān)于OpenCV中光流以及視頻特征點(diǎn)追蹤的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • python GUI庫(kù)圖形界面開發(fā)之PyQt5布局控件QHBoxLayout詳細(xì)使用方法與實(shí)例

    python GUI庫(kù)圖形界面開發(fā)之PyQt5布局控件QHBoxLayout詳細(xì)使用方法與實(shí)例

    這篇文章主要介紹了python GUI庫(kù)圖形界面開發(fā)之PyQt5布局控件QHBoxLayout詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下
    2020-03-03
  • python Celery定時(shí)任務(wù)的示例

    python Celery定時(shí)任務(wù)的示例

    這篇文章主要介紹了python Celery定時(shí)任務(wù)的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • 基于Python實(shí)現(xiàn)創(chuàng)建、修改或刪除Excel命名區(qū)域

    基于Python實(shí)現(xiàn)創(chuàng)建、修改或刪除Excel命名區(qū)域

    Excel命名區(qū)域是電子表格中一個(gè)重要的功能,它允許用戶為單元格或單元格范圍分配有意義的名稱,本文將詳細(xì)介紹如何使用Free Spire.XLS for Python 進(jìn)行創(chuàng)建,編輯和刪除命名區(qū)域等操作
    2025-10-10
  • Pytorch.nn.conv2d 過程驗(yàn)證方式(單,多通道卷積過程)

    Pytorch.nn.conv2d 過程驗(yàn)證方式(單,多通道卷積過程)

    今天小編就為大家分享一篇Pytorch.nn.conv2d 過程驗(yàn)證方式(單,多通道卷積過程),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python中的面向?qū)ο缶幊淘斀?下)

    Python中的面向?qū)ο缶幊淘斀?下)

    這篇文章主要介紹了Python中的面向?qū)ο缶幊淘斀?下),本文講解了繼承、super關(guān)鍵字、重寫、多重繼承、類、實(shí)例和其他對(duì)象的內(nèi)建函數(shù)、私有化等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • 讓Django支持Sql Server作后端數(shù)據(jù)庫(kù)的方法

    讓Django支持Sql Server作后端數(shù)據(jù)庫(kù)的方法

    今天小編就為大家分享一篇讓Django支持Sql Server作后端數(shù)據(jù)庫(kù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python中把嵌套的列表合并成一個(gè)列表方法總結(jié)

    python中把嵌套的列表合并成一個(gè)列表方法總結(jié)

    python中l(wèi)ist這種數(shù)據(jù)結(jié)構(gòu)很常用到,下面這篇文章主要給大家介紹了關(guān)于python中把嵌套的列表合并成一個(gè)列表方法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • pyinstaller參數(shù)介紹以及總結(jié)詳解

    pyinstaller參數(shù)介紹以及總結(jié)詳解

    這篇文章主要介紹了pyinstaller參數(shù)介紹以及總結(jié)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論

阳朔县| 英山县| 隆化县| 手机| 桑日县| 齐齐哈尔市| 通山县| 鹤庆县| 镇康县| 拜城县| 松原市| 河西区| 晴隆县| 武定县| 县级市| 松原市| 达尔| 呼和浩特市| 丘北县| 尉氏县| 宁津县| 临邑县| 密云县| 天等县| 茶陵县| 明星| 孟州市| 甘南县| 汤原县| 青田县| 临江市| 长沙市| 澄江县| 雷州市| 松江区| 布拖县| 囊谦县| 望江县| 湖北省| 卢龙县| 论坛|