Ответ 1
df2 = pd.DataFrame(index=df1.index)
Это создаст DataFrame без столбцов, а будет только индексом, и он будет тем же самым индексом, что и в df1.
У меня есть кадр данных df1 с несколькими столбцами и строками. Простой пример:
TIME T1 T2
1 10 100
2 20 200
3 30 300
Я хотел бы создать пустой фрейм данных df2, а затем добавить новые столбцы с результатами расчета.
В этот момент мой код выглядит так:
df1=pd.read_csv("1.txt",index_col="TIME")
df2=df1.copy()[[]] #copy df1 and erase all columns
... добавление двух новых столбцов:
df2["results1"],df2["results2"]=df1["T1"]*df["T2"]*3,df1["T2"]+100
Есть ли лучший способ/более безопасный/быстрый способ сделать это? Возможно ли создать пустой фрейм данных df2 и только скопировать индекс из df1?
df2 = pd.DataFrame(index=df1.index)
Это создаст DataFrame без столбцов, а будет только индексом, и он будет тем же самым индексом, что и в df1.
Лучше установить индекс как df1.index.copy()
df2 = pd.DataFrame(index=df1.index.copy())
Вы можете использовать df1.index
is df2.index
, чтобы проверить, являются ли они одним и тем же объектом
Вы также можете напрямую назначить индекс фрейма данных другому фрейму данных.
df2.index=df1.index
Вы можете использовать этот короткий код:
df2 = df1 [[]]. копия()