我正在使用Pandas在Python中编写一些代码来处理CSV文件并在数据框中以各种方式处理数据。目前,使用我已编写的脚本,df.head()调用以下数据帧(简化):
Facility Facility Servers Servers
Date 27/10/2016 28/10/2016 27/10/2016 28/10/2016
00:30 7 6 5 5
01:00 4 5 5 7
01:30 7 8 6 5
02:00 7 2 5 5
我现在要做的是删除不包含特定日期的列。因此,在这种情况下,如果我想删除所有不包含28/10/2016的列,结果将是:
Facility Servers
Date 28/10/2016 28/10/2016
00:30 6 5
01:00 5 7
01:30 8 5
02:00 2 5
我已经做了很多阅读并检查了StackOverflow上的各种帖子,但是找不到合适的解决方案。有没有人知道如何使用某种条件语句删除我的数据框中没有出现28/10/2016的任何列?
答案 0 :(得分:1)
我认为您需要先从DataFrame
的第一行创建definition on Wikipedia,然后按df.iloc[1:]
删除第一行:
print (df.columns)
Index(['Facility', 'Facility', 'Servers', 'Servers'], dtype='object')
print (df.iloc[0])
Facility 27/10/2016
Facility 28/10/2016
Servers 27/10/2016
Servers 28/10/2016
Name: Date, dtype: object
df.columns = pd.MultiIndex.from_arrays([df.columns, pd.to_datetime(df.iloc[0])])
df = df.iloc[1:]
print (df)
Facility Servers
Date 2016-10-27 2016-10-28 2016-10-27 2016-10-28
00:30 7 6 5 5
01:00 4 5 5 7
01:30 7 8 6 5
02:00 7 2 5 5
最后一次使用MultiIndex.from_arrays
:
idx = pd.IndexSlice
print (df.loc[:,idx[:,['2016-10-28']]])
Facility Servers
Date 2016-10-28 2016-10-28
00:30 6 5
01:00 5 7
01:30 8 5
02:00 2 5