簡體   English   中英

使用多行作為 id 格式化 pandas dataframe

[英]formatting a pandas dataframe with multiple rows as ids

我正在做一個項目,我正在將表格從 filemaker 轉換為 airtable。 通常這很簡單,但是,我有很多沒有正確傳輸的 Unicode 字符,這需要我到 go 並手動更改這些條目。

*我正在轉換的表格示例

unique id artifact rec'd before treatment biography ...
0         blanket  12/1  yes              lorem ipsum
1         blanket  12/1  yes              lorem ipsum
2         blanket  12/1  yes              lorem ipsum
3         blanket  12/1  yes              lorem ipsum
4         blanket  12/1  yes              lorem ipsum

我正在做的是從兩個文件中獲取 csv 輸出,然后對它們進行比較,並根據結果創建一個新文件。 這給了我所有的差異。 目前,output 看起來像這個文件:

0   1          2    3    4    5       6           7           8
694 label     lorem  
675 biography henry  675 text  lorem
708 text      foo    708 label bar    708         description ipsum 

我想要的是能夠對其進行格式化,這樣它就可以更高了,而不是 29+ 列寬。

我的想法 output 會像這樣:

0   1          2  
694 label     Lorem 
675 biography henry 
675 text      ipsum
708 text      foo    
708 label     bar    
708 description ipsum

這應該是pandas.melt問題,但我很難弄清楚如何最好地壓縮行。

這有點復雜,但是基於每三列分組和處理的一些列表理解:

out = pd.concat([df[df.columns[i*3:i*3+3]].rename(columns={i*3:0, i*3+1:1, i*3+2:2})
                                          .dropna()
                 for i in range(len(df.columns)//3)], 
                 ignore_index=True)
print(out)

# Output:
       0            1      2
0  694.0        label  lorem
1  675.0    biography  henry
2  708.0         text    foo
3  675.0         text  lorem
4  708.0        label    bar
5  708.0  description  ipsum

暫無
暫無

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

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