Если вы хотите для мутации серии (столбца) в пандах, шаблон должен быть apply
функцией для него (которая обновляется по элементу в серии за раз), а затем назначать эту серию обратно в dataframe
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, вы можете использовать в аксессуре .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)
Вы хотите изменить значения или просто как они появляются на экране? –
Я хочу создать фрейм данных, удалив часть даты из исходного файла csv – milinda49