gpt4 book ai didi

Python Pandas 从时间戳中删除日期

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:32 25 4
gpt4 key购买 nike

我有一个像这样的大数据集

                         user  category
time
2014-01-01 00:00:00 21155349 2
2014-01-01 00:00:00 56347479 6
2014-01-01 00:00:00 68429517 13
2014-01-01 00:00:00 39055685 4
2014-01-01 00:00:00 521325 13

我想把它变成

               user category
time
00:00:00 21155349 2
00:00:00 56347479 6
00:00:00 68429517 13
00:00:00 39055685 4
00:00:00 521325 13

你如何使用 pandas 做到这一点

最佳答案

如果你想改变 pandas 中的一个系列(列),模式是对其应用一个函数(一次更新系列中的元素),然后分配给它系列回到数据框

import pandas
import StringIO

# load data
data = '''date,user,category
2014-01-01 00:00:00, 21155349, 2
2014-01-01 00:00:00, 56347479, 6
2014-01-01 00:00:00, 68429517, 13
2014-01-01 00:00:00, 39055685, 4
2014-01-01 00:00:00, 521325, 13'''
df = pandas.read_csv(StringIO.StringIO(data))
df['date'] = pandas.to_datetime(df['date'])

# make the required change
without_date = df['date'].apply( lambda d : d.time() )
df['date'] = without_date

# display results
print df

如果问题是因为日期是索引,你还有一些要跳过的环节:

df = pandas.read_csv(StringIO.StringIO(data), index_col='date')
ser = pandas.to_datetime(df.index).to_series()
df.set_index(ser.apply(lambda d : d.time() ))

根据@DSM 的建议,如果你有 0.15.2 之后的 pandas,你可以使用该系列的 .dt 访问器来进行快速更新。

df = pandas.read_csv(StringIO.StringIO(data), index_col='date')
ser = pandas.to_datetime(df.index).to_series()
df.set_index(ser.dt.time)

关于Python Pandas 从时间戳中删除日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28247778/

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