如何解决Python错误:没有足够的值可解压缩(预期2,得到1)

时间:2019-01-08 10:16:47

标签: python dataframe

我需要将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) 这种转换应在整个日期列进行

1 个答案:

答案 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)