Loops 合并/连接CSV导入的数据帧并删除重复项

Loops 合并/连接CSV导入的数据帧并删除重复项,loops,csv,pandas,duplicates,Loops,Csv,Pandas,Duplicates,我正在跟进我的计划 已经整理出一个循环来导入CSV、连接数据和删除重复项 files = glob.glob('./A08_csv/A08_B1_T*.csv') dfs = [pd.read_csv(fp, index_col=[0], parse_dates=[0], dayfirst=True) for fp in files] df = pd.concat(dfs) df_purged = df.drop_duplicates(inplace=True) print df_purg

我正在跟进我的计划

已经整理出一个循环来导入CSV、连接数据和删除重复项

files = glob.glob('./A08_csv/A08_B1_T*.csv')
dfs = [pd.read_csv(fp,  index_col=[0], parse_dates=[0], dayfirst=True) for fp in files] 
df = pd.concat(dfs)

df_purged = df.drop_duplicates(inplace=True)
print df_purged
但是df.drop_duplicates(inplace=True)不起作用(当然我遗漏了一些东西),print返回一个空白。如何指定按索引检查重复项?添加列名似乎不起作用

另外,我如何将这个循环转换成一个公式,这样我就可以将这个递归输入应用到具有不同文件名的csv(即可以用于A08_B1_T*.csv(卧室)和A08_KI_T*.csv(厨房)等的东西)?

这会有帮助吗

df.drop_duplicates(['col_name']) 
以下是一个解决方案,它将索引添加为数据帧列,在该列上删除重复项,然后删除新列:

df= df.reset_index().drop_duplicates(subset='Date', 'Time', keep='last').set_index(subset='Date', 'Time')

您了解
inplace=True
选项吗

如果在原地执行
操作,则意味着您将修改
df
,因此不要将值设置为
df\u

这里有两种解决方案:要么希望保留“未敦促”数据帧,然后执行以下操作:

df_purged = df.drop_duplicates()
df.drop_duplicates(inplace = True)
要么你不在乎保留它,要么你在乎:

df_purged = df.drop_duplicates()
df.drop_duplicates(inplace = True)
第一个选项,您的结果数据帧将被清除
df\u
,但在第二个选项中,它将被清除
df
,因为您在原地执行了
df

这就是说,如果您想清除索引,如果您不需要保留索引,您可以
重置索引
,然后
删除重复项
,如下所示:

df_purged = df.reset_index().drop_duplicates(['index']).drop('index',1)
如果需要保留索引(对删除的行进行模化):


(请注意,再次删除索引名只是为了美观)

当然可以(我也尝试过),但问题是我希望根据索引(日期和时间)识别重复项,并且不知道如何使用索引而不是“col_name”。如果我键入:
df.drop_duplicates(['Date-Time'])
这是csv上的列名,那么我会得到一个Key ErrorCmari,谢谢。我现在得到了
KeyError:'index'
CMari,它不起作用并返回了我
KeyError:'index'