Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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
Python 在时间戳日期中拆分_Python_Python 3.x_Pandas_Split_Timestamp - Fatal编程技术网

Python 在时间戳日期中拆分

Python 在时间戳日期中拆分,python,python-3.x,pandas,split,timestamp,Python,Python 3.x,Pandas,Split,Timestamp,我有一个关于熊猫问题的问题: 因此,我有一个数据帧,看起来如下所示: timestamp user exercises 2018-01-01 John 7 2018-01-01 Mary 9 2018-02-01 John 3 2018-02-01 Mary 2 2018-03-01 John 1 2018-03-01 Mary 5 2019-01-

我有一个关于熊猫问题的问题:

因此,我有一个数据帧,看起来如下所示:

timestamp     user     exercises
2018-01-01    John         7
2018-01-01    Mary         9
2018-02-01    John         3
2018-02-01    Mary         2
2018-03-01    John         1
2018-03-01    Mary         5
2019-01-01    John         3
2019-01-01    Mary         4
2019-02-01    John         2
2019-02-01    Mary         5
2020-01-01    John         6
2020-01-01    Mary         2
2020-02-01    John         1
2020-02-01    Mary         2
我需要得到一个输出数据框,它是给定数据框的子集,但它必须只保留2018年的数据,如下所示:

    timestamp     user     exercises
    2018-01-01    John         7
    2018-01-01    Mary         9
    2018-02-01    John         3
    2018-02-01    Mary         2
    2018-03-01    John         1
    2018-03-01    Mary         5
关于如何从给定的数据帧中获取此输出数据帧,有什么想法吗

事先非常感谢

任何帮助都将不胜感激。

将熊猫作为pd导入
 import pandas as pd

 /* Convert the date column to Datetime format */

 data['DATE'] = pd.to_datetime(data['DATE'])

 /* Create mask for the required condition */

 mask = data['DATE'] <= '31-12-2018'

 /* apply mask to the data */

 data = data.loc[mask]
/*将日期列转换为日期时间格式*/ 数据['DATE']=pd.to_datetime(数据['DATE']) /*为所需条件创建掩码*/ 掩码=数据['DATE']仅用于选择2018年:

# df['timestamp'] = pd.to_datetime(df['timestamp'])

df_new = df[df['timestamp'].dt.year == 2018]

尝试:

输入

    timestamp   user    exercises
0   2018-01-01  john    7
1   2018-01-01  mary    9
2   2019-01-01  john    3
3   2020-01-01  mary    2
timestamp   user    exercises
0   2018-01-01  john    7
1   2018-01-01  mary    9
输出

    timestamp   user    exercises
0   2018-01-01  john    7
1   2018-01-01  mary    9
2   2019-01-01  john    3
3   2020-01-01  mary    2
timestamp   user    exercises
0   2018-01-01  john    7
1   2018-01-01  mary    9

如果您喜欢lambdas,可以使用以下选项:

如果时间戳为字符串:

df.loc[lambda df: df.timestamp.str[:4] == '2018']
如果时间戳是日期:

df.loc[lambda df: (pd.to_datetime(df.timestamp)).dt.year == 2018]

您的索引是否为
DatetimeIndex
?如果是这样,您可以调用
data.loc[“2018”]
。在内部,
pandas
将把“2018”视为2018年,因为
.loc
切片在两边都包含,所以选择该年的所有数据。

时间戳是字符串还是日期类型?