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
切片在两边都包含,所以选择该年的所有数据。时间戳是字符串还是日期类型?