Как исправить ошибку Python: недостаточно значений для распаковки (ожидается 2, получено 1) - PullRequest
0 голосов
/ 08 января 2019

Мне нужно преобразовать столбец даты в файле 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) это преобразование должно происходить для всего столбца даты

1 Ответ

0 голосов
/ 08 января 2019

Я думаю, что это поможет

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...