【发布时间】:2021-09-28 23:48:48
【问题描述】:
我正在尝试将列上的重复值转换为与第一个结果位于同一行的新列
创建数据集
import numpy as np
import pandas as pd
ref = ['a','a','b','c','c','c']
z = pd.DataFrame(ref)
z = z.rename(columns={0:'name'})
查找唯一值 {name, [index position, nº duplicates]}
unique_values = {}
i = 0
while i <= len(z)-1:
for x in z.name:
if x not in unique_values:
unique_values[x] = i,0
i+=1
else:
unique_values[x] = unique_values[x][0] , unique_values[x][1]+1
i+=1
问题从这里开始:
我正在尝试使用 unique_values 作为(索引和重复数)的指导来创建一个新列,该列的重复值与“第一个”值位于同一行。像这样的数据集: name= ['a', 'b', 'c'] ; name1=['a', na, 'c']; name2= [ na ,na 'c']
由于某种原因,我找不到这部分不起作用的错误:请帮助
x = 1
i = 1
for k,v in unique_values.items():
if v[1] > 0:
print(k,v,x)
if x <= v[1]:
z[f'name{x}'] = pd.Series(z.name.loc[z.index[v[0]+i]], index=z.index[[v[0]]])
x+=1
i+=1
else:
x = 1
i = 1
【问题讨论】:
-
你想用你的代码的最后一部分做什么?
-
我正在尝试使用 unique_values 作为(索引和重复数)的指导来创建一个新列,该列的重复值与“第一个”值位于同一行。像这样:name= ['a', 'b', 'c'] name1=['a', na, 'c']。 name2= [ na ,na ''c]