首页 > 解决方案 > 如何将结果从一个变量转移到excel中的一列?

问题描述

我想将里面的值添加duplicates到列Name中,以便print(data["Name"])可以返回duplicates. 我怎样才能做到这一点?

小故事:我正在导入一个 csv 文件,我需要拆分列Name以删除无意义的信息,然后我使用列表理解来查找重复项。

data = pd.read_csv(next(iglob('*.csv')))
data["Name"]= data["Name"].str.split("(", n = 1, expand = True) 
duplicates = [x for x in data["Name"]  if x in data["Name"] 
[data["Name"].duplicated()].values]

标签: pythonpandas

解决方案


编辑:

df['dupicates'] = df['Name'].where(df['Name'].duplicated(keep=False), '')

    Name duplicates
0  NameC           
1  NameA      NameA
2  NameB      NameB
3  NameA      NameA
4  NameA      NameA
5  NameB      NameB

或者,如果您只想标记那些重复值...(删除keep=False

df['duplicates'] = df['Name'].where(df['Name'].duplicated(), '')

    Name duplicates
0  NameC           
1  NameA           
2  NameB           
3  NameA      NameA
4  NameA      NameA
5  NameB      NameB

IIUC,你可以尝试这样的事情:

df = pd.DataFrame({'Name':['NameC', 'NameA', 'NameB', 'NameA', 'NameA', 'NameB']})
duplicates = df.loc[df['Name'].duplicated(), 'Name'].unique().tolist()
duplicates

输出:

['NameA', 'NameB']

说明:duplicates用于创建一个布尔系列,然后通过布尔系列和“名称”列过滤数据框,然后使用 unique 获取所有重复项的唯一值。


推荐阅读