Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 每隔一天分割一次数据集_Pandas - Fatal编程技术网

Pandas 每隔一天分割一次数据集

Pandas 每隔一天分割一次数据集,pandas,Pandas,我有一个数据集,我收集了很多天,并按日历日索引。每天都有不同数量的条目。我想看看奇数天(如第1天、第3天、第5天等)是否与偶数天(如第2天、第4天、第6天等)相关,为此,我必须将数据集分成两部分 我无法使用第%2天,因为我的集合中缺少了一些日子和周末,因此无法使用第%2天。我尝试过使用如下重采样: df_odd = df.resample('2D') lowest_date = df['date_minus_time'].min() df_even = df.query('date_minu

我有一个数据集,我收集了很多天,并按日历日索引。每天都有不同数量的条目。我想看看奇数天(如第1天、第3天、第5天等)是否与偶数天(如第2天、第4天、第6天等)相关,为此,我必须将数据集分成两部分

我无法使用第%2天,因为我的集合中缺少了一些日子和周末,因此无法使用第%2天。我尝试过使用如下重采样:

df_odd = df.resample('2D') 
lowest_date = df['date_minus_time'].min() 
df_even = df.query('date_minus_time != @lowest_date).resample('2D')
但它坚持按天汇总数据。我希望保留所有行,以便对结果数据集执行进一步的操作(例如groupby)

如何创建两个数据帧,一个包含所有日期为“偶数”的行,另一个包含所有日期为“奇数”的行,偶数和奇数与数据集的第一天相对

以下是一些示例数据:

Date          var
2018-12-10    1
2018-12-10    0
2018-12-10    1
2018-12-10    0
2018-12-11    1
2018-12-11    1
2018-12-12    0
2018-12-12    1
2018-12-12    1
2018-12-14    1
2018-12-14    0
2018-12-14    1
2018-12-16    1
2018-12-16    1
2018-12-16    1
以及预期产量:

奇数:

Date          var
2018-12-10    1
2018-12-10    0
2018-12-10    1
2018-12-10    0
2018-12-12    0
2018-12-12    1
2018-12-12    1
2018-12-16    1
2018-12-16    1
2018-12-16    1
df_偶数:

Date          var
2018-12-11    1
2018-12-11    1
2018-12-14    1
2018-12-14    0
2018-12-14    1

pd.category
一起使用.code

num = pd.Categorical(df.Date).codes + 1
df_odd = df[num%2 == 0]
df_even = df[num%2 == 1]

df_odd

          Date  var
0   2018-12-10    1
1   2018-12-10    0
2   2018-12-10    1
3   2018-12-10    0
6   2018-12-12    0
7   2018-12-12    1
8   2018-12-12    1
12  2018-12-16    1
13  2018-12-16    1
14  2018-12-16    1

df_even

          Date  var
4   2018-12-11    1
5   2018-12-11    1
9   2018-12-14    1
10  2018-12-14    0
11  2018-12-14    1

您可以通过
df.date\u减去\u time.day.dt.day
来访问日期,该日期提供了实际的天数(例如
2019年2月21日->1985年3月13日21日->13
)。但我不确定这是您想要的。您能提供示例数据和预期输出吗?@runout我添加了一个示例。广亨,我不能用它,因为我希望一半的数据在一个数据中结束,另一半在另一个数据中结束。在我使用实际日期发布的示例中,会给我一个12月10日、12日、14日、16日的数据帧,另一个只有12月11日的数据帧。