Python 如何从datetime索引字符串中删除时间

Python 如何从datetime索引字符串中删除时间,python,pandas,datetime,indexing,datetime-format,Python,Pandas,Datetime,Indexing,Datetime Format,我的问题是如何从索引字符串中删除时间部分。我正在导入包含分钟股票数据的csv,代码如下所示: import pandas as pd df = pd.read_csv(f'/Volumes/Seagate Portable/S&P 500 List/AAPL.txt') df.columns = ['Extra', 'Dates', 'Open', 'High', 'Low', 'Close', 'Volume'] df.Dates = pd.to_datetime(df.Date

我的问题是如何从索引字符串中删除时间部分。我正在导入包含分钟股票数据的csv,代码如下所示:

import pandas as pd

df = pd.read_csv(f'/Volumes/Seagate Portable/S&P 500 List/AAPL.txt')

df.columns = ['Extra', 'Dates', 'Open', 'High', 'Low', 'Close', 'Volume']

df.Dates = pd.to_datetime(df.Dates)
df.set_index('Dates', inplace=True)
df = df.between_time('9:30', '16:00')
df.drop(['Extra', 'Open', 'High', 'Volume', 'Low'], axis=1, inplace=True)
df = df.groupby(pd.Grouper(freq='D')).agg({'Close':'last'})
df.index[0]
这将修改数据框以查找交易日的最后收盘价。其输出为:

Timestamp('2020-01-02 00:00:00', freq='D')
所以我的问题是我想从字符串中删除时间(00:00:00)。我不想做这样的事情:

` df.index = df.index.date)` 

这是因为
df.index[0]
的输出将是:
datetime.date(2020,1,2)
,这不是我想要的。所以我尝试的是

for df_dates in df.index:
    string_df = f"{df_dates}"
    split_string_df = string_df.split(' ')
    df_dates = split_string_df[0]
    df.index[df_dates] = df_dates
这给了我一个错误
TypeError:Index不支持可变操作
因此,我正在寻找一种代码,它将删除字符串的时间部分,在我可以索引出
df['2020-2-12']
而不是
df[datetime.date(2020,1,2)]
(我不确定,我假设这意味着修改显示而不是实际索引,但我不知道。)

您尝试过:

indexes =[]
for df_dates in df.index:
    string_df = f"{df_dates}"
    split_string_df = string_df.split(' ')
    df_dates = split_string_df[0]
    indexes.append( df_dates)
df.index = indexes

问题是您试图通过调用
df.index[]=
按索引修改索引,因为索引列表是不可变的,必须整体修改。

这很有效,谢谢!我没有想到这一点,我很高兴能得到你的帮助。。。!是的,对不起,当你给出答案的时候,我本想说对的,我不得不等一分钟,因为它不会让你马上接受答案,而且我忘了回来。我的道歉非常感谢:)
indexes =[]
for df_dates in df.index:
    string_df = f"{df_dates}"
    split_string_df = string_df.split(' ')
    df_dates = split_string_df[0]
    indexes.append( df_dates)
df.index = indexes