web-dev-qa-db-ja.com

別のデータフレームのインデックスを使用して空のデータフレームを作成する

データフレーム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

... 2つの新しい列を追加します。

     df2["results1"],df2["results2"]=df1["T1"]*df["T2"]*3,df1["T2"]+100

これを行うためのより良い/安全な/より速い方法はありますか?空のデータフレームdf2を作成し、df1からのみインデックスをコピーすることは可能ですか?

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

これにより、列だけでなくインデックスのみを持つDataFrameが作成され、df1と同じインデックスになります。

71
Viktor Kerkez

データフレームのインデックスを別のデータフレームに直接割り当てることもできます。

df2.index=df1.index

2
Anand Mohan

インデックスをdf1.index.copy()として設定することをお勧めします

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

df1.index is df2.indexを使用して、それらが同じオブジェクトであるかどうかを確認できます

2
waitingkuo

次の短いコードを使用できます。

df2=df1[[]].copy()

1
Paulo Pinto