繁体   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