Панды - дублирование нескольких строк с новыми значениями - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть датафрейм, который выглядит следующим образом:

  date       code1    code2    code3
  6/1/18     X        Y        Z
  6/1/18     A        B        C
  6/1/18     S        D        F
  6/5/18     T        R        Y
  6/5/18     L        M        Q
  6/29/18    N        T        Z
  6/29/18    K        G        V
  6/29/18    B        A        C
  7/4/18     E        F        G

У меня есть две даты, которые мне нужно добавить: 1/1/18 и 7/2/18.Мне нужно скопировать все записи за последний день предыдущего месяца (29.06.18), меняя только дату.

Вывод:

  date       code1    code2    code3
  6/1/18     X        Y        Z
  6/1/18     A        B        C
  6/1/18     S        D        F
  6/5/18     T        R        Y
  6/5/18     L        M        Q
  6/29/18    N        T        Z
  6/29/18    K        G        V
  6/29/18    B        A        C
  7/4/18     E        F        G
  7/1/18     N        T        Z
  7/1/18     K        G        V
  7/1/18     B        A        C
  7/2/18     N        T        Z
  7/2/18     K        G        V
  7/2/18     B        A        C

7/1 иДобавлены даты 7/2 с использованием тех же значений столбца, что и 6 / 29.

(выходные данные также можно упорядочить по дате, это не имеет значения).

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Следующий метод вернет обновленный фрейм данных для данного фрейма данных, old_date и new_date

def change(df, old_date ,new_date):         
    temp_df = df.loc[old_date]
    temp_df.index = [new_date for _ in range(len(temp_df))]
    df=df.append(temp_df)
    return df
0 голосов
/ 17 сентября 2018

Предположим, ваш исходный фрейм данных называется df, тогда вы можете сделать:

# Extract the rows you want
df_tmp = df[df['date'] == '6/29/18']

# Update the date in the temporary dataframe    
df_tmp['date'] = '7/1/18'

# Append your result to your original dataframe
df = df.append(df_tmp)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...