簡體   English   中英

將 csv 讀入 dataframe,方法是忽略字段外殼引號 (“ ”) 中的“LF”和“CR LF”

[英]Read csv into dataframe by ignoring “LF” and “CR LF” within field enclosure quotes (“ ”)

我有一個數據文件,其中的字段用雙引號和字段分隔符括起來,如下所示:

field enclosure = "<field_value>"
sep = ||@@##

因此,字段值的引號中的文本具有“LF”和“CR LF”行分隔符,這導致下一行打印在新行上 - 這可能被誤解為新記錄,而實際上,它一個記錄的一部分,有沒有被打破的線路轉移到一個新的線路。

例子:

3||@@##14||@@##"2016-01-13 19:59:27"||@@##"2016-01-15 23:09:19"||@@##1162||@@##822||@@##1237||@@##\N||@@##"VHiujdfYshv"||@@##"---<LF>
...LF
"||@@##\N||@@##"2016-01-15 23:09:18"||@@##0||@@##1||@@##0||@@##0||@@##3||@@##1788||@@##\N||@@##205||@@##\N||@@##0||@@##\N||@@##\N||@@##\N||@@##\N||@@##\N||@@##\N||@@##1||@@##\N||@@##"251 Bgegf BHVcvytd Street<CR LF>
JHbsdbfh, RF 35214<CR LF>
<CR LF>
xyz@gmail.dhg.com<CR LF>
<CR LF>
@@##1788<LF>
4||@@##14||@@##"2016-01-25 22:08:53"||@@##"2016-02-15 20:32:08"||@@##1097||@@##933||@@##1262||@@##\N||@@##"VHiujdfYshv"||@@##"--- <LF>
...<LF>

請注意, LFCR LF實際上沒有顯示尖括號,這可能是給定的,但我提到它是為了絕對清楚。 下面是在記事本++文件上的外觀的片段。 另外,請注意,我的數據包含“||@@##”作為字段分隔符,“\N”用於 na_values。

以下是我目前閱讀此文件的方式。 我嘗試使用 pd.read_csv 中的 'quotechar' 和 'quoting' 參數,但它使用 C 解析器,該分隔符使用 Python 解析器,因此 Z23EEEB4347BDD26BZDD6B7EE 如何讀取此文件<在讀取為 CSV 之前處理它,或者在讀取 CSV 文件時使用一些正則表達式? 請幫忙。

df =  pd.read_csv(z.open(filename), 
                              encoding = 'utf8',
                              header=None,
                              sep='\|\|@@##',
                              na_values='\\N',
                             engine = 'python')

在此處輸入圖像描述

我有一個數據文件,其中的字段用雙引號和字段分隔符括起來,如下所示:

field enclosure = "<field_value>"
sep = ||@@##

因此,字段值的引號中的文本具有“LF”和“CR LF”行分隔符,這導致下一行打印在新行上 - 這可能被誤解為新記錄,而實際上,它一個記錄的一部分,有沒有被打破的線路轉移到一個新的線路。

例子:

3||@@##14||@@##"2016-01-13 19:59:27"||@@##"2016-01-15 23:09:19"||@@##1162||@@##822||@@##1237||@@##\N||@@##"VHiujdfYshv"||@@##"---<LF>
...LF
"||@@##\N||@@##"2016-01-15 23:09:18"||@@##0||@@##1||@@##0||@@##0||@@##3||@@##1788||@@##\N||@@##205||@@##\N||@@##0||@@##\N||@@##\N||@@##\N||@@##\N||@@##\N||@@##\N||@@##1||@@##\N||@@##"251 Bgegf BHVcvytd Street<CR LF>
JHbsdbfh, RF 35214<CR LF>
<CR LF>
xyz@gmail.dhg.com<CR LF>
<CR LF>
@@##1788<LF>
4||@@##14||@@##"2016-01-25 22:08:53"||@@##"2016-02-15 20:32:08"||@@##1097||@@##933||@@##1262||@@##\N||@@##"VHiujdfYshv"||@@##"--- <LF>
...<LF>

請注意, LFCR LF實際上沒有顯示尖括號,這可能是給定的,但我提到它是為了絕對清楚。 下面是在記事本++文件上的外觀的片段。 另外,請注意,我的數據包含“||@@##”作為字段分隔符,“\N”用於 na_values。

以下是我目前閱讀此文件的方式。 我嘗試使用 pd.read_csv 中的 'quotechar' 和 'quoting' 參數,但它使用 C 解析器,該分隔符使用 Python 解析器,因此 Z23EEEB4347BDD26BZDD6B7EE 如何讀取此文件<在讀取為 CSV 之前處理它,或者在讀取 CSV 文件時使用一些正則表達式? 請幫忙。

df =  pd.read_csv(z.open(filename), 
                              encoding = 'utf8',
                              header=None,
                              sep='\|\|@@##',
                              na_values='\\N',
                             engine = 'python')

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM