python - 按变量重新索引 CSV 文件
问题描述
所以,我有一个 CSV 文件:[较小的样本]
value,variable,comparison
260,5,0
266,5,0
272,6,0
418,7,1
416,7,1
260,1,0
320,1,0
558,1,0
306,2,0
568,2,0
544,2,0
310,3,0
558,3,0
446,3,0
262,4,0
394,4,0
本质上,需要发生的是列variable
需要重新索引,因此不是在当前索引中排序,5,6,7,1,2,4
而是需要1,2,3,4,5,6,7
不排序。需要保留数据的位置。不知道如何做到这一点,将回答任何人的任何问题。我考虑过可能使用 pandas 库,或者将 CSV 文件拆分为多个字典,然后将键更改为 1、2、3、4、5 等。
目前,为了获得当前输出,我在 pandas 中使用了堆叠功能,然后输出到 CSV。这是我的代码:
index_column_name ='value'
dt = dataset.iloc[:,9:16].stack().sort_index(level=1).reset_index(level=0, drop=True).to_frame()
#Create the "index_value" column
dt['variable'] = pandas.Categorical(dt.index).codes+1
dt.rename(columns={0:index_column_name}, inplace=True)
dt.set_index(index_column_name, inplace=True)
dt.to_csv(filename + ".csv", sep=',')
期望的输出:
260,1,0
266,1,0
272,2,0
418,3,1
416,3,1
260,4,0
320,4,0
558,4,0
306,5,0
568,5,0
544,5,0
310,6,0
558,6,0
446,6,0
262,7,0
394,7,0
同样,我需要数据的实际位置相同,因此不使用排序功能,不同组variable
需要位于同一位置。
解决方案
推荐阅读
- ios - Swift:重构 NSMutableAttributedString
- zk - 如何使用动态文本框创建通信
- mule - Mule 是否支持键中的“-”(连字符)?
- javascript - 带有 JQuery 事件的条码阅读器
- ios - 当我使用 UIDocumentPickerViewController 从 iCloud 中选择 zip 文件时无法与帮助应用程序通信
- google-cloud-platform - BigQuery 命令“bq mk”引发错误“mk 操作中的 BigQuery 错误:读取架构时出错:”
- mysql - 如何使用 linq2db 将聚合映射到单个表
- java - 如何在 avro java 项目中处理具有不同数据库名称的多个部署环境?
- uicollectionviewcell - 需要固定大小的收集单元
- php - 从现有表生成实体