我需要将CSV文件的日期列转换为其他类型的日历日期。 当我将索引值(i)指定为特定rowindex的数字时,它可以正常工作,但对于整个数据帧,却给我一个错误。
for i, row in df1.itertuples():
date_str=df1.iloc[i].name
dd,mm,yyyy=date_str.split('-', )
dd_int,mm_int,yyyy_int=int(dd),int(mm),int(yyyy)
new_date=indian_civil.from_gregorian(yyyy_int,mm_int,dd_int)
CSV文件的第一列具有格里高利格式的日期,我需要印度民用格式(2016, 3, 28)=(1938, 1, 8)
这种转换应在整个日期列进行
答案 0 :(得分:1)
我认为这会有所帮助
df = pd.DataFrame(["28-03-2016", "29-03-2016", "30-03-2016", "31-03-2016", "01-04-2016"])
df.columns = ["Date"]
df.Date = pd.to_datetime(df.Date)
df
Date
0 2016-03-28
1 2016-03-29
2 2016-03-30
3 2016-03-31
4 2016-01-04
from convertdate import indian_civil
df["indian_civil"] = df.apply(lambda x: indian_civil.from_gregorian(x.Date.year, x.Date.day, x.Date.month), axis=1)
df
Date indian_civil
0 2016-03-28 (1940, 1, 17)
1 2016-03-29 (1940, 2, 17)
2 2016-03-30 (1940, 3, 17)
3 2016-03-31 (1940, 4, 16)
4 2016-01-04 (1938, 1, 12)