python – 添加新列并删除重复项,以便逐列替换空值

python – 添加新列并删除重复项,以便逐列替换空值,第1张

概述Duplication type:Check this column only (default)Check other columns onlyCheck all columnsUse Last Value:True - retain the last duplicate valueFalse - retain the first of the duplicates (defaul
Duplication type:Check this column only (default)Check other columns onlyCheck all columnsUse Last Value:True - retain the last duplicate valueFalse - retain the first of the duplicates (default)

此规则应向数据框添加新列,该列包含与任何唯一列的源列相同的列,并且对于任何重复列都为null.

基本代码是df.loc [df.duplicated(),get_unique_column_name(df,“clean”)] = df [get_column_name(df,column)],其中参数为duplicated(),基于复制类型设置

请参阅上述此功能的参考:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.duplicated.html

您应该根据duplication_type的设置在subset参数中指定列

您应该根据上面的use_last_value指定use_last_value

这是我的档案.

Jason   Miller  42  4   25Tina    Ali     36  31  57Jake    Milner  24  2   62Jason   Miller  42  4   25Jake    Milner  24  2   62Amy     Cooze   73  3   70Jason   Miller  42  4   25Jason   Miller  42  4   25Jake    Milner  24  2   62Jake    Miller  42  4   25

我希望通过在pandas.in中使用以下文件得到这样的我选择了2列.

Jason   Miller  42  4   25Jake    Ali     36  31  57Jake    Milner  24  2   62Jason   Miller      4   25Jake    Milner      2   62Jake    Cooze   73  3   70Jason   Miller      4   25Jason   Miller      4   25Jake    Milner      2   62Jake    Miller      4   25

请有人回复我的问题.

解决方法 您可以使用 DF.duplicated并指定列C的值,其中第一个出现的值沿着列A和B出现.

然后,您可以填充使用空字符串生成的Nans以生成所需的数据帧.

df = pd.read_csv(data,delim_whitespace=True,header=None,names=['A','B','C','D','E'])df.loc[~df.duplicated(),"C'"] = df['C']df.fillna('',inplace=True)df = df[["A","B","C'","D","E"]]print(df)       A       B  C'   D   E0  Jason  Miller  42   4  251   Tina     Ali  36  31  572   Jake  Milner  24   2  623  Jason  Miller       4  254   Jake  Milner       2  625    Amy   Cooze  73   3  706  Jason  Miller       4  257  Jason  Miller       4  258   Jake  Milner       2  629   Jake  Miller  42   4  25

另一种方法是获取重复列的子集,并用空字符串替换相关列.然后,您可以使用update使用原始df修改数据框.

In [2]: duplicated_cols = df[df.duplicated(subset=['C','E'])]In [3]: duplicated_colsOut[3]:        A       B   C  D   E3  Jason  Miller  42  4  254   Jake  Milner  24  2  626  Jason  Miller  42  4  257  Jason  Miller  42  4  258   Jake  Milner  24  2  629   Jake  Miller  42  4  25In [4]: duplicated_cols.loc[:,'C'] = ''In [5]: df.update(duplicated_cols)In [6]: dfOut[6]:        A       B   C     D     E0  Jason  Miller  42   4.0  25.01   Tina     Ali  36  31.0  57.02   Jake  Milner  24   2.0  62.03  Jason  Miller       4.0  25.04   Jake  Milner       2.0  62.05    Amy   Cooze  73   3.0  70.06  Jason  Miller       4.0  25.07  Jason  Miller       4.0  25.08   Jake  Milner       2.0  62.09   Jake  Miller       4.0  25.0
总结

以上是内存溢出为你收集整理的python – 添加新列并删除重复项,以便逐列替换空值全部内容,希望文章能够帮你解决python – 添加新列并删除重复项,以便逐列替换空值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存