如何修复Python错误:没有足够的值来解包(预期值为2,实际值为1)

如何修复Python错误:没有足够的值来解包(预期值为2,实际值为1),python,dataframe,Python,Dataframe,我需要将CSV文件的日期列转换为不同类型的日历日期。 当我将索引值(I)指定为特定行索引的数字时,它可以正常工作,但对于整个数据帧,它会给我一个错误 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_gregoria

我需要将CSV文件的日期列转换为不同类型的日历日期。 当我将索引值(I)指定为特定行索引的数字时,它可以正常工作,但对于整个数据帧,它会给我一个错误

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)
整个日期列都应该进行此转换

我认为这会有所帮助

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)

对于我,df1.itertuples()中的行。
什么是
df1
?df1=pd.read\u csv(文件位置,索引列=0,na\u值=['na'],usecols=[0])你能发布df1的前几行吗?不。发布df1.head的输出()日期28-03-2016 29-03-2016 30-03-2016 31-03-2016 01-04-2016df.Date=pd.to\u日期(df.Date.Date)给我一个错误“DataFrame”对象没有属性“Date”你确定你执行了
df.columns=[“Date”]
df.Date
应该是
df。不管你的日期是什么列名是什么,都导入pandas作为pd导入numpy作为np从pandas导入读取csv从pandates导入datetime df=pd.read\u csv(file\loc,index\u col=0,na\u值=['NA'],usecols=[0]),在df上,我得到了日期28-03-2016 29-03-2016 30-03-2016 31-03-2016 01-04-2016