gpt4 book ai didi

python - 按变量重新索引 CSV 文件

转载 作者:太空宇宙 更新时间:2023-11-03 20:32:31 26 4
gpt4 key购买 nike

所以,我有一个 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 文件拆分为多个字典,然后将 key 更改为 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

同样,我需要数据的实际位置相同,因此不使用排序函数,不同组的变量需要位于同一位置。

最佳答案

你可以尝试:

reordering_map = {old_value: new_value for old_value, new_value in zip(df.variable.unique(), range(1, len(df.variable.unique()) + 1) )}

print(reordering_map)
# output: {5: 1, 6: 2, 7: 3, 1: 4, 2: 5, 3: 6, 4: 7}

df.variable = df.variable.apply(lambda x: reordering_map[x])

df

enter image description here

关于python - 按变量重新索引 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57399573/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com