第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

使用python將部分文件文本讀入pandas數(shù)據(jù)框

使用python將部分文件文本讀入pandas數(shù)據(jù)框

MMTTMM 2022-11-01 17:03:13
例如,我有以下格式的數(shù)據(jù)文本:HEADER NODE DATA, AIR            -10000,    15.,    -1.0HEADER CONDUCTOR DATA, AIR            1,    AIR.10000,    S25D.1,    56.84441         $ AIR CONV            2,    AIR.10000,    S25D.2,    56.45712         $ AIR CONV            3,    AIR.10000,    S25D.3,    53.35623         $ AIR CONV            4,    AIR.10000,    S25D.4,    45.09633         $ AIR CONV            5,    AIR.10000,    S25D.9,    77.00067         $ AIR CONV            6,    AIR.10000,    S25D.10,    80.35013         $ AIR CONV            7,    AIR.10000,    S25D.11,    50.4933         $ AIR CONV            8,    AIR.10000,    S25D.12,    91.61026         $ AIR CONV            9,    AIR.10000,    S25D.13,    53.75025         $ AIR CONV            10,    AIR.10000,    S25D.14,    75.68577         $ AIR CONV            11,    AIR.10000,    S25D.15,    110.0111         $ AIR CONV            12,    AIR.10000,    S25D.16,    114.7913         $ AIR CONV            13,    AIR.10000,    S25D.17,    81.12207         $ AIR CONV            14,    AIR.10000,    S25D.18,    72.80061         $ AIR CONV            15,    AIR.10000,    S25D.19,    72.21327         $ AIR CONV            16,    AIR.10000,    S25D.20,    90.99183         $ AIR CONV            17,    AIR.10000,    S25D.21,    66.35648         $ AIR CONV            18,    AIR.10000,    S25D.22,    76.9787         $ AIR CONV            19,    AIR.10000,    S25D.23,    52.46601         $ AIR CONV            20,    AIR.10000,    S25D.24,    68.30105         $ AIR CONV            21,    AIR.10000,    S25D.25,    114.0903         $ AIR CONV            22,    AIR.10000,    S25D.26,    70.51425         $ AIR CONV            23,    AIR.10000,    S25D.27,    36.39104         $ AIR CONV我想將其讀入熊貓數(shù)據(jù)框以進(jìn)行進(jìn)一步分析。如您所見,每個(gè)子集的標(biāo)題和數(shù)據(jù)格式都不同。我想使用 re 模塊和 pandas 將數(shù)據(jù)讀入框架,但不知道如何以最有效的方式進(jìn)行。此外,您可以看到 AIR 字符串對兩個(gè)標(biāo)頭都是通用的。在完整文件中會有更多這樣的字符串,所以我想為每個(gè)字符串創(chuàng)建一個(gè)類,其屬性(節(jié)點(diǎn),導(dǎo)體)將是一個(gè)帶有相應(yīng)數(shù)據(jù)的 pd 數(shù)據(jù)框。
查看完整描述

1 回答

?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以嘗試以下方法:

  1. 使用逐行讀取文件f.readlines()

  2. 對于每一行,檢查該行是否包含HEADER.

    • 如果是這種情況,這意味著這是一個(gè)新的子 df。將其添加到輸出

    • else: 將當(dāng)前行追加到當(dāng)前子數(shù)據(jù)

  3. 將文本格式的 df 列表轉(zhuǎn)換sub為 pandas 數(shù)據(jù)框。這個(gè)討論解釋了如何。筆記:

    • 將任何“ ,”與“ ,*”匹配

    • 使用匹配任何所有2 個(gè)或更多空間"\s{2,}

    • 使用的正則表達(dá)式是,*\s{2,}指:

    • 該參數(shù)header=None是必需的,第一行將用于添加列名稱。


完整代碼

# import modules

import pandas as pd

from io import StringIO


out = []

with open("data.txt", "r") as f:

    sub = ""

    for line in f.readlines():

        if "HEADER" in line:

            # Skip first insertion

            if sub != "":

                out.append(sub)

                sub = ""

        else: sub += line

    # Append last sub (outside for loop)

    out.append(sub)


# "out" is a list of pandas dataframes

out = [pd.read_csv(StringIO(o), sep=r",*\s{2,}", header=None, engine="python") for o in out]

print(out[0])

#        0     1    2

# 0 -10000  15.0 -1.0


print(out[1])

#      0          1         2          3           4

# 0    1  AIR.10000    S25D.1   56.84441  $ AIR CONV

# 1    2  AIR.10000    S25D.2   56.45712  $ AIR CONV

# 2    3  AIR.10000    S25D.3   53.35623  $ AIR CONV

# 3    4  AIR.10000    S25D.4   45.09633  $ AIR CONV

# 4    5  AIR.10000    S25D.9   77.00067  $ AIR CONV

# ..  ..        ...       ...        ...         ...

# 89  90  AIR.10000  S25D.122  133.79200  $ AIR CONV

# 90  91  AIR.10000  S25D.123  194.22270  $ AIR CONV

# 91  92  AIR.10000  S25D.124  116.83720  $ AIR CONV

# 92  93  AIR.10000  S25D.125  125.51610  $ AIR CONV

# 93  94  AIR.10000  S25D.126   54.22872  $ AIR CONV


# [94 rows x 5 columns]

print(out[1].columns)

# Int64Index([0, 1, 2, 3, 4], dtype='int64')


查看完整回答
反對 回復(fù) 2022-11-01
  • 1 回答
  • 0 關(guān)注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號