簡體   English   中英

如何從 column_name 的 txt 文件創建 dataframe:行由空行分隔的值

[英]How to create dataframe from txt file of column_name: value where rows are delimited by empty line

我有一個 (2GB) txt 文件如下

column_name_1: value_1_1

column_name_2: value_1_2

column_name_3: value_1_3


column_name_1: value_2_1

column_name_2: value_2_2

column_name_3: value_2_3

這意味着行由空行分隔,並且在每一行中,列的值在“:”之后跟隨所述列的名稱。

我想把它變成 dataframe 之類的

column_name_1      column_name_2      column_name_3
value_1_1          value_1_2          value_1_3
value_2_1          value_2_2          value_2_3

我試過使用 pd.read_csv() 和 '\t'、'\n'、'\n' 和 '\n\n' 作為 sep,但它們要么給出錯誤,要么用單列生成 dataframe

column_name_1: value_1_1
column_name_2: value_1_2
column_name_3: value_1_3
column_name_1: value_2_1

. . .

我也試過先從 txt 文件制作字典,然后從字典到 DataFrame,但是當我嘗試創建字典時 kernel 崩潰了

有人能幫我嗎?

這是一種方法

# read-in the csv with : as a delimiter
# it ends up with a two columns DF
df=pd.read_csv('csv2.txt', delimiter=":", header=None, names=['col1', 'col2'])


# groupby the col1, and aggregate columns2 as list
# convert it to a dict and then create a dataframe from the dict
df2=pd.DataFrame(dict(df.groupby('col1')['col2'].agg(list)))
df2

    column_name_1   column_name_2   column_name_3
0   value_1_1   value_1_2   value_1_3
1   value_2_1   value_2_2   value_2_3

暫無
暫無

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

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