如何在熊猫中将长数据格式转换为宽数据格式

贾亚河

我有长格式的数据,想将稀疏数据转换为宽格式:

df = pd.DataFrame({'id':[1000,1001,1000,1002,1003,1000],
                   'Date':[26018,26017,26016,26010,26009,26009]})

输入数据

并通过分配以下格式将其转换为宽格式:

输出数据

耶斯列尔

想法是添加帮助器列,然后按DataFrame.pivot,将缺少的值添加为DataFrame.reindex,最后将misisng值转换为0并将其转换为整数:

df1 = (df.assign(new = 1)
         .pivot('id','Date','new')
         .reindex(range(df['Date'].min(), df['Date'].max() + 1), axis=1)
         .fillna(0)
         .astype(int))
print (df1)
Date  26009  26010  26011  26012  26013  26014  26015  26016  26017  26018
id                                                                        
1000      1      0      0      0      0      0      0      1      0      1
1001      0      0      0      0      0      0      0      0      1      0
1002      0      1      0      0      0      0      0      0      0      0
1003      1      0      0      0      0      0      0      0      0      0

如果得到:

ValueError:索引包含重复的条目,无法重塑

这意味着像重复的样本数据的最后一行中一样有重复项。然后添加DataFrame.drop_duplicates

df = pd.DataFrame({'id':[1000,1001,1000,1002,1003,1000, 1000],
                   'Date':[26018,26017,26016,26010,26009,26009, 26009]})


df1 = (df.assign(new = 1)
         .drop_duplicates(subset=['id','Date'])
         .pivot('id','Date','new')
         .reindex(range(df['Date'].min(), df['Date'].max() + 1), axis=1)
         .fillna(0)
         .astype(int))
print (df1)
Date  26009  26010  26011  26012  26013  26014  26015  26016  26017  26018
id                                                                        
1000      1      0      0      0      0      0      0      1      0      1
1001      0      0      0      0      0      0      0      0      1      0
1002      0      1      0      0      0      0      0      0      0      0
1003      1      0      0      0      0      0      0      0      0      0

注意:我的解决方案不计算行,仅1在存在相交idDateelse时返回0

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用melt()将宽数据转换为需要值查找的长数据格式

来自分类Dev

使用melt()将宽数据转换为需要值查找的长数据格式

来自分类Dev

如何转换为SVM数据格式

来自分类Dev

长数据格式的时差

来自分类Dev

如何在Excel中将文本类型的持续时间数据转换为时间数据格式?

来自分类Dev

在R中将数据帧从“宽”格式转换为“长”格式

来自分类Dev

如何在Pandas中将宽日期数据转换为长格式

来自分类Dev

数据格式转换Python

来自分类Dev

如何在Stata中将长数据转换为宽数据?

来自分类Dev

R 将长数据格式化为宽数据...但具有链接结果

来自分类Dev

AVFrame数据格式

来自分类Dev

数据格式对比

来自分类Dev

在R中转换为整齐的数据格式

来自分类Dev

数据格式从单个对象转换为键值对的对象数组

来自分类Dev

结构化数据格式转换为XML

来自分类Dev

数据格式化熊猫

来自分类Dev

使用SimpleDateFormat转换数据格式

来自分类Dev

转换R包Mfuzz的数据格式

来自分类Dev

根据条件,新的数据格式超出长格式

来自分类常见问题

在数据框中从长格式转换为宽格式

来自分类Dev

将分类数据从长格式转换为宽格式

来自分类Dev

在数据框中从长格式转换为宽格式

来自分类Dev

如何在R中将数据集从宽格式转换为长格式

来自分类Dev

如何在Python中读取通用数据格式(CDF)

来自分类Dev

如何在Python中读取通用数据格式(CDF)

来自分类Dev

如何在R中将具有大量行的大文件从长格式转换为宽格式?

来自分类Dev

如何标准化数据格式?

来自分类Dev

axios发布数据格式

来自分类Dev

什么是CoNLL数据格式?