Предположим, у меня есть два DataFrames, показанные ниже:
DataFrames
dd = pd.DataFrame([1,0, 3, 0, 5]) 0 0 1 1 0 2 3 3 0 4 5
и
df = pd.DataFrame([2,4]) 0 0 2 1 4
Как передать значения df в dd с step = 2 , поэтому я получаю
df
dd
0 0 1 1 2 2 3 3 4 4 5
dd.values[1::2] = df.values
dd теперь содержит:
Обратите внимание, что здесь используется условие step=2.Синтаксис array [1 :: 2] означает начало от элемента массива с индексом 1 до конца с шагом = 2.
step=2
Другое решение:
dd = pd.DataFrame([1, 0, 3, 0, 5]) df = pd.DataFrame([2, 4]) dd.iloc[1::2] = df.values dd # Out: 0 0 1 1 2 2 3 3 4 4 5
Измените df.index по диапазону и заполните секунду DataFrame:
df.index
DataFrame
df.index = range(1, len(dd)+1, 2)[:len(df)] print (df) 0 1 2 3 4 dd.loc[df.index] = df print (dd) 0 0 1 1 2 2 3 3 4 4 5