Q1.dataframe格式,数据为几个CSV数据拼接成的,已经设置好了行和index,程序报错不能直接运算,不支持str和int,将其存为CSV再读取就可以运算了(加减乘除的运算),想知道如何不保存读取直接运算
Q2.数据日期格式为202106,设置index,pd.to_datetime(数据名.index,format=%Y%m)程序报错,手动更改CSV数据日期20210601,再改回202106,程序不报错,index日期变为20210601 00:00:00,想知道问题在哪,如何直接在程序中解决
1,将参与运算的列数据转换一下数据格式即可,如df['x].astype(float)
2.先将数据日期转成str类型,再用to_datetime函数转换。
import pandas as pd
df=pd.DataFrame({'date':['202105','202106','202107'],'value':[12300,22500,36380]})
df.set_index('date',inplace=True)
df.index = df.index.map(lambda x: pd.to_datetime(x, format='%Y%m'))
df.index=df.index.to_period('M')
print(df)
原始数据是这样的,麻烦您了
ff3_factors.index.name = 'Date'
ff3_factors.set_index('Date',inplace=True)
ff3_factors.index = ff3_factors.index.map(lambda x: pd.to_datetime(x, format='%Y%m'))
ff3_factors.index=ff3_factors.index.to_period('M')
提示:"None of ['Date'] are in the columns"