簡體   English   中英

將新的Pandas DataFrame附加到舊的,而沒有對列名稱進行排序的情況

[英]Append new Pandas DataFrame to an old one without column names sorted

我將新的數據框附加到舊的數據框:

import numpy as np
import pandas as pd
from pandas import Series
from pandas import DataFrame

df1 = DataFrame(np.arange(3.).reshape((1, 3)), columns=list('dcb'), index=['Ohio'])
df2 = DataFrame(np.arange(3.).reshape((1, 3)), columns=list('bdc'), index=['Utah'])
print df1
print df2
print pd.concat([df1, df2])

然后我得到這樣的結果:

       d    c    b
Ohio  0.0  1.0  2.0

       b    d    c
Utah  0.0  1.0  2.0

       b    c    d
Ohio  2.0  1.0  0.0
Utah  0.0  2.0  1.0

但是我希望結果中的列不按“ bcd”排序,而是按原點“ dcb”排序:

       d    c    b
Ohio  0.0  1.0  2.0
Utah  1.0  2.0  0.0

使用join_axes參數:

pd.concat([df1, df2], join_axes=[df1.columns])

您可以將原始訂單存儲在變量中,然后在合並后重新應用它:

df1 = DataFrame(np.arange(3.).reshape((1, 3)), columns=list('dcb'), index=['Ohio'])
orig_column_order = df1.columns
df2 = DataFrame(np.arange(3.).reshape((1, 3)), columns=list('bdc'), index=['Utah'])
combined = pd.concat([df1, df2], keys=list('dbc'))
combined = combined[orig_column_order]
print(df1)
print(df2)
print(combined)

給出:

        d    c    b
Ohio  0.0  1.0  2.0
        b    d    c
Utah  0.0  1.0  2.0
          d    c    b
d Ohio  0.0  1.0  2.0
b Utah  1.0  2.0  0.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM