从数据框中删除重复列的最简单方法是什么?
我正在通过以下方式读取具有重复列的文本文件:
import pandas as pd
df=pd.read_table(fname)
列名是:
Time, Time Relative, N2, Time, Time Relative, H2, etc...
所有“时间”和“相对时间”列均包含相同的数据。我想要:
Time, Time Relative, N2, H2
我所有的删除,删除等尝试,例如:
df=df.T.drop_duplicates().T
导致唯一值索引错误:
Reindexing only valid with uniquely valued index objects
很抱歉成为熊猫的菜鸟。任何建议,将不胜感激。
额外细节
熊猫版本:0.9.0
Python版本:2.7.3
Windows 7
(通过Pythonxy 2.7.3.0安装)
数据文件(注意:在实际文件中,列由制表符分隔,此处它们由4个空格分隔):
Time Time Relative [s] N2[%] Time Time Relative [s] H2[ppm]
2/12/2013 9:20:55 AM 6.177 9.99268e+001 2/12/2013 9:20:55 AM 6.177 3.216293e-005
2/12/2013 9:21:06 AM 17.689 9.99296e+001 2/12/2013 9:21:06 AM 17.689 3.841667e-005
2/12/2013 9:21:18 AM 29.186 9.992954e+001 2/12/2013 9:21:18 AM 29.186 3.880365e-005
... etc ...
2/12/2013 2:12:44 PM 17515.269 9.991756+001 2/12/2013 2:12:44 PM 17515.269 2.800279e-005
2/12/2013 2:12:55 PM 17526.769 9.991754e+001 2/12/2013 2:12:55 PM 17526.769 2.880386e-005
2/12/2013 2:13:07 PM 17538.273 9.991797e+001 2/12/2013 2:13:07 PM 17538.273 3.131447e-005
有一种解决方案。如果某些列名重复并且您希望删除它们,则适用此规则:
df = df.loc[:,~df.columns.duplicated()]
这个怎么运作:
假设数据框的列是 ['alpha','beta','alpha']
df.columns.duplicated()
返回一个布尔数组:aTrue
或False
每列。如果是,False
则该列名称在该点之前是唯一的;如果是,True
则该列名称在前面已重复。例如,使用给定的示例,返回值为[False,False,True]
。
Pandas
允许使用布尔值建立索引,从而仅选择True
值。由于我们要保留不重复的列,因此需要翻转上面的布尔数组(即[True, True, False] = ~[False,False,True]
)
最后,df.loc[:,[True,True,False]]
使用上述索引功能仅选择非重复列。
注意 :以上仅检查列名称, 而不 检查列值。
请注意,在转向您之前,我已经浏览了各种帖子。事实上,我尝试实现中提供的解决方案:基于“notin”条件从数据帧中删除行 我的问题如下。让我们假设我有一个巨大的数据帧,我想删除重复的数据帧。我很清楚我可以使用drop_duplicates,因为这是最快的最简单的方法。然而,我们的老师希望我们创建一个包含重复项ID的列表,然后根据这些值是否包含在上述列表中删除它们。 现在,让我们看看输出: 因此,我得
问题内容: 我在存储的过程中有一个字符串,类似于或 从上面的字符串中,我必须从中删除多个逗号,它必须看起来像 或仅在 then时 。我必须仅使用Sql Server函数。我正在使用Sql Server 2008和.Net 3.5 提前致谢。 问题答案: 该选项适用于仅使用逗号或最多398个连续逗号的字符串。 如果需要更多,在顶部添加额外的2的幂,或者如果需要较少,则从顶部删除2的幂。每个阶段的注释
问题内容: 我有一张看起来像这样的桌子 表格1 ID,名称 如何编写查询以删除所有具有重复名称的行,但保留具有较低ID的行? 问题答案: 如果您使用的是SQL Server 2005或更高版本: 如果使用SQL Server 2000及更低版本
对于包含10列的数据框,如何删除索引2以上的列。数据框如下所示: 任务是删除列3-列10
本文向大家介绍pandas 删除重复,包括了pandas 删除重复的使用技巧和注意事项,需要的朋友参考一下 示例 用途drop_duplicates: 当您不想获取数据框的副本,而要修改现有的数据框时:
我有下表(TBL_视频),在“TIMESTAMP”中有重复的列条目,我只想在“CAMERA”编号匹配时删除它们。 之前: 之后: 我已尝试此语句,但列不会相应删除。我非常感谢为生成正确的SQL语句所提供的所有帮助。提前谢谢!