在Python中将具有行/列索引的数据转换为表

乔安妮

我有位置(行/列)的数据,

df = pd.DataFrame({'ID': ['a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'b02', 'b02', 'b02','b02', 'b02', 'b02', 'b02', 'b02'],
                   'Row': [1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 2, 2, 3, 3, 3],
                   'Col': [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 3, 1, 3, 1, 2, 3],
                   'Result': ['p', 'f', 'p', 'p', 'p', 'f', 'p', 'p', 'p', 'p', 'p', 'p', 'f', 'p', 'p', 'p']})

我试图将其转换为表格,并计算表格中的p和f,如下所示:

ID: a01
p  f  p
p  p  f
p  p  p

p: 7 f: 2

ID: b02
p     p
p     f
p  p  p

p: 6 f: 1

缺少一些数据,但是行和列的数目是固定的,因此请将它们留空。

我不知道如何实现这一目标,有什么想法吗?

斯科特·波士顿

您可以这样操作:
我在输入数据框中确实纠正并输入了错误。
(将df.loc [8,'ID']中的值从b02更改为a01)

df = pd.DataFrame({'ID': ['a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'b02', 'b02','b02', 'b02', 'b02', 'b02', 'b02'],
                   'Row': [1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 2, 2, 3, 3, 3],
                   'Col': [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 3, 1, 3, 1, 2, 3],
                   'Result': ['p', 'f', 'p', 'p', 'p', 'f', 'p', 'p', 'p', 'p', 'p', 'p', 'f', 'p', 'p', 'p']})

df

dfs = {}
for n, g in df.groupby('ID'):
    dfs[n] = g.pivot('Row', 'Col', 'Result').fillna('')
    print(f'ID: {n}')
    print(dfs[n])
    print('\n')
    print(dfs[n].stack().value_counts().to_dict())
    print('\n')

输出:

ID: a01
Col  1  2  3
Row         
1    p  f  p
2    p  p  f
3    p  p  p


{'p': 7, 'f': 2}


ID: b02
Col  1  2  3
Row           
1    p     p
2    p     f
3    p  p  p


{'p': 6, 'f': 1}

更新以添加串联并输出到csv或excel。

pd.concat(dfs, keys=dfs.keys()).to_csv('out.csv')
!type out.csv

输出文件内容:

,Row,1,2,3
a01,1,p,f,p
a01,2,p,p,f
a01,3,p,p,p
b02,1,p,,p
b02,2,p,,f
b02,3,p,p,p

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Python中将具有多个功能的分类数据转换为数字的最快方法是什么?

在python中将数据库转换为具有特定格式的json

在Python中将具有重复键的嵌套JSON文件转换为数据帧

如何将具有多索引索引和具有字符串值的列的数据框转换为数据透视表?

将数据框转换为带有索引的表

在Python中将HTML表转换为Pandas数据框

在python中将表数据帧转换为json api请求

在Python中将具有元组列表的字典转换为DataFrame

SQL / Python:将数据从csv转换为具有条件的不同架构的表

如何在python中将具有string和int的数据帧的列转换为只有int

将具有多个索引的数据帧转换为具有列值的键的键

如何在Angular JS中将具有索引值的数组转换为JSON

如何在元素内具有索引的javascript中将数组转换为json字符串

如何在Python中将具有不同长度的多个值的嵌套列表转换为pandas数据框?

如何在python中将累积数据转换为多索引的每日数据?

Python-在列上具有多个索引的数据透视表

将相关矩阵转换为具有每个行列对记录的数据框

如何在没有索引的熊猫中将数据框转换为字典

将数据框转换为具有连续索引和列的数据框

将pandas多索引数据框转换为具有所有索引列的简单数据框

在Python中将c阶索引转换为f阶索引

如何在laravel中将具有多个表的聚合转换为USE DB?

使用 PostGIS 从具有多个点的表中将点转换为多边形

在Python中将JSON转换为HTML表

在Python中将CSV转换为HTML表

Python Pandas:是否可以在多索引数据框中将日期对象转换为DateTimeIndex?

在r中将具有时间变量的纵向数据从宽格式转换为长格式

如何在R中将数据帧转换为具有多列的json

如何在R中将列表转换为具有特殊格式的数据框