gpt4 book ai didi

python - Pandas 从 python 中的日期字符串列获取日期值

转载 作者:行者123 更新时间:2023-11-30 22:45:11 24 4
gpt4 key购买 nike

读取数据集:

visits=   pd.read_csv('tracker.csv', low_memory=False, parse_dates=     
['Date_Time'])
df= pd.DataFrame(visits)

这就是数据的样子:

print(df.head(n=1))
Date_Time IPAddress Visitors OS Browser \
0 2016-10-18 12:57:45 104.236.233.18 1001 Mac OS Google Chrome
Browser_Version Location Referrer PageID
0 39.0.2171.95 NaN http://www.puneetmathur.in/ index.php

问题出在 Date_Time 列上:

import datetime
df['new_date'] = [d.date() for d in df['Date_Time']]
df['new_time'] = [d.time() for d in df['Date_Time']]
df['year'] = pd.DatetimeIndex(df['new_date']).year
df['month'] = pd.DatetimeIndex(df['new_date']).month

目的是获取月 = 12 的所有天数,从 1 到 30、31 或 28,具体取决于月份。

转换为下面的字符串并拆分值以访问拆分后的 DAY 值:

strdt=str(df.new_date)
df['new_date']=df['new_date'].astype(str)
df['new_date']=df.new_date.apply(str)
type(df.new_date)
df['new_day']=df.new_date.str.split('-')

Pandas Dataframe 有超过 1000 行,所以这不是问题:

print(df.new_day)
print(df.new_day)
0 [2016, 10, 18]
1 [2016, 10, 18]
2 [2016, 10, 18]
3 [2016, 10, 18]
4 [2016, 10, 18]
5 [2016, 10, 18]
6 [2016, 10, 19]
7 [2016, 10, 19]
8 [2016, 10, 19]
9 [2016, 10, 19]
10 [2016, 10, 19]
11 [2016, 10, 19]
12 [2016, 10, 19]
13 [2016, 10, 19]
14 [2016, 10, 19]
15 [2016, 10, 19]
16 [2016, 10, 19]
17 [2016, 10, 19]
18 [2016, 10, 20]
19 [2016, 10, 20]
20 [2016, 10, 20]

我想访问第二个逗号两位数字之后的第三个值 打印(df['new_day'][6][2]) 19

到目前为止一切顺利..

我现在首先用月份过滤日期,然后尝试使用以下代码访问第二个逗号后面的值(2 位数字值):

value_list = [12]
vdf= pd.DataFrame(df[df.month.isin(value_list)])
print(vdf[:][:].head(n=1))
print(vdf[:][:].head(n=1))
Date_Time IPAddress Visitors OS Browser \
2836 2016-12-11 01:25:25 66.102.8.217 3955 Search Bot Apple Safari
Browser_Version Location Referrer \
2836 9 Florida, United States http://www.puneetmathur.in/

PageID new_date new_time year month new_day
2836 index.php 2016-12-11 01:25:25 2016 12 [2016, 12, 11]

当我尝试访问第二个值时,它给出了奇怪的输出:

vdf['new_day'][:][:2].str.split('-')
Out[250]: Series([], Name: new_day, dtype: object)

下面的内容也无法为我提供 new_day 第三列中第二个逗号之后的所有值。请告诉我如何访问 new_day 第三列中的 DAY 值

vdf.iloc[:,:]

最佳答案

我遇到了同样的问题,用以下代码解决了:

df['Date_Time'].dt.day 

尝试一下它应该对你有用。精彩的部分是,即使在导入时,您也已经处理了日期时间的转换。现在您只需使用 dt.day 访问这一天即可。

关于python - Pandas 从 python 中的日期字符串列获取日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41268685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com