2016-10-19 3 views
4

Я хочу задать проблему, с которой я столкнулся. Во-первых, Позвольте мне показать вам весь мой кодФункция str.replace raise erorr требуется целое число

df1 = pd.read_excel(r'E:\내논문자료\골목상권 데이터\이태원로 54길 내용뺀거.xlsx' , sheetname='first_day_datas') 
df1.registerdate= df1.registerdate.astype(str) # 칼럼 속성 바꾸기 
df2 = pd.to_datetime(df1['registerdate'].str[0:10]) 
df3 = df2['registerdate'].str.replace('-', '').str.strip() 

Я просто хочу, чтобы изменить строку в registerdate колонке. , когда я печатаю (df2.head (3)). Он показан ниже

0 2016-10-11 
1 2016-10-15 
2 2016-10-15 

поэтому я хочу заменить '-' на ''. Я набираю код и вызывается «TypeError: целое число». Как я могу решить эту проблему ??

ответ

1
df2 = pd.to_datetime(df1['registerdate'].str[0:10]) 
#  \____________/ 
# returns a series 

df2['registerdate'].str.replace('-', '').str.strip() 
#\_______________/ 
# is only something 
# if 'registration 
# is in the index 
# this is probably the source of your error 

В этот момент df2 является pd.Series из Timestamps. формат yyyy-mm-dd - это способ отображения Timestamp. Для того, чтобы отобразить его как yyyymmdd, сделать это

df2.dt.strftime('%Y%m%d') 

0 20160331 
1 20160401 
2 20160402 
3 20160403 
4 20160404 
Name: registerdate, dtype: object 
+0

Спасибо ~~ Вы отличный парень ~ Хороший день ~~ – victory

1

кажется df2 не имеет столбец «registerdate» Это список временной метки. Думаю, df2.map(lambda x: x.strftime('%Y%m%d') может преобразовать временную метку в нужный формат.

+0

Спасибо ~~ я прочитал его сейчас. Ты отличный парень ~ – victory