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

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

比較 CSV 中的行數(shù)與 Pandas 成功處理為數(shù)據(jù)幀的行數(shù)?

比較 CSV 中的行數(shù)與 Pandas 成功處理為數(shù)據(jù)幀的行數(shù)?

Qyouu 2023-11-09 21:55:21
我們使用 Pandas 將 CSV 讀入數(shù)據(jù)幀: someDataframe = pandas.read_csv(        filepath_or_buffer=our_filepath_here,        error_bad_lines=False,        warn_bad_lines=True    )由于我們允許跳過壞行,因此我們希望能夠跟蹤已跳過的行數(shù)并將其放入一個值中,以便我們可以對其進行度量。為此,我正在考慮比較數(shù)據(jù)框中的行數(shù)與原始文件中的行數(shù)。我認(rèn)為這就是我想要的:someDataframe = pandas.read_csv(   filepath_or_buffer=our_filepath_here,   error_bad_lines=False,   warn_bad_lines=True)initialRowCount = sum(1 for line in open('our_filepath_here'))difference = initialRowCount - len(someDataframe.index))但是運行這個的硬件是非常有限的,當(dāng)我們已經(jīng)通過 .read_csv 完成整個事情時,我寧愿不打開文件并迭代整個事情只是為了獲得行數(shù)。有誰知道有更好的方法來獲取 CSV 的成功處理計數(shù)和初始行數(shù)嗎?
查看完整描述

1 回答

?
狐的傳說

TA貢獻1804條經(jīng)驗 獲得超3個贊

雖然我沒有親自測試過這一點,但我相信您可以通過捕獲警告并檢查返回的捕獲警告列表的長度來計算生成的警告數(shù)量。然后將其添加到數(shù)據(jù)框的當(dāng)前形狀:


import warnings

import pandas as pd


with warnings.catch_warnings(record=True) as warning_list:

    someDataframe = pandas.read_csv(

       filepath_or_buffer=our_filepath_here,

       error_bad_lines=False,

       warn_bad_lines=True

    )


# May want to check if each warning object a pandas "bad line warning"

number_of_warned_lines = len(warning_list)


initialRowCount = len(someDataframe) + number_of_warned_lines

https://docs.python.org/3/library/warnings.html#warnings.catch_warnings


編輯:花了一點時間,但這似乎適用于 Pandas。我們將暫時重定向,而不是依賴內(nèi)置警告stderr。然后我們可以計算該字符串中出現(xiàn)“Skipping Lines”的次數(shù),并以帶有此警告消息的壞行數(shù)結(jié)束!


import contextlib

import io


bad_data = io.StringIO("""

a,b,c,d

1,2,3,4

f,g,h,i,j,

l,m,n,o

p,q,r,s

7,8,9,10,11

""".lstrip())


new_stderr = io.StringIO()

with contextlib.redirect_stderr(new_stderr):

    df = pd.read_csv(bad_data, error_bad_lines=False, warn_bad_lines=True)

    

n_warned_lines = new_stderr.getvalue().count("Skipping line")


print(n_warned_lines) # 2


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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