[英]How can I use the column_name of a dataframe as a value on the rows?
[英]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.