Ответ 1
Вы можете установить только путем увеличения с помощью одной строки или столбца. Вы устанавливаете диапазон.
Операции .loc/.ix/[] могут выполнять увеличение при настройке несуществующей клавиши для этой оси.
Для вашего использования, что-то вроде этого должно работать, чтобы расширить фрейм данных с новыми пустыми строками:
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
>>> df
a b
0 1 4
1 2 5
2 3 6
new_row_count = 2
for new_row, old_row in enumerate(range(new_row_count), start=len(df)):
df.ix[new_row] = None
>>>df
a b
0 1 4
1 2 5
2 3 6
3 NaN NaN
4 NaN NaN
Если вы хотите скопировать данные из исходного фреймворка, я бы обычно просто конкатенацию.
df = pd.concat([df, df.iloc[:2, :]], ignore_index=True)