Подтвердить что ты не робот

Создайте пустой кадр данных с индексом из другого фрейма данных

У меня есть кадр данных 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?

4b9b3361

Ответ 1

df2 = pd.DataFrame(index=df1.index)

Это создаст DataFrame без столбцов, а будет только индексом, и он будет тем же самым индексом, что и в df1.

Ответ 2

Лучше установить индекс как df1.index.copy()

df2 = pd.DataFrame(index=df1.index.copy())

Вы можете использовать df1.index is df2.index, чтобы проверить, являются ли они одним и тем же объектом

Ответ 3

Вы также можете напрямую назначить индекс фрейма данных другому фрейму данных.

df2.index=df1.index

Ответ 4

Вы можете использовать этот короткий код:

df2 = df1 [[]]. копия()