簡體   English   中英

根據列名稱填充Pandas DataFrame來表示另一個DataFrame

[英]Populating a Pandas DataFrame frome another DataFrame based on column names

我有一個以下形式的DataFrame:

    a b c
0   1 4 6
1   3 2 4
2   4 1 5

我有一個列名列表,我需要使用它來創建一個新的DataFrame,使用與每個標簽對應的第一個DataFrame的列。 例如,如果我的列列表是['a','b','b','a','c'],則生成的DataFrame應為:

    a b b a c
0   1 4 4 1 6   
1   3 2 2 3 4
2   4 1 1 4 5

我一直試圖找出一種執行此操作的快速方法,因為我正在處理極其龐大的DataFrame,我不認為循環是一個合理的選擇。

您可以使用列表來選擇它們:

In [44]:

cols = ['a', 'b', 'b', 'a', 'c']
df[cols]
Out[44]:
   a  b  b  a  c
0  1  4  4  1  6
1  3  2  2  3  4
2  4  1  1  4  5

[3 rows x 5 columns]

所以不需要循環,一旦你創建了數據幀df那么使用列名列表只會索引它們並創建你想要的df。

你可以直接這樣做:

>>> df
   a  b  c
0  1  4  6
1  3  2  4
2  4  1  5

>>> column_names
['a', 'b', 'b', 'a', 'c']

>>> df[column_names]
   a  b  b  a  c
0  1  4  4  1  6
1  3  2  2  3  4
2  4  1  1  4  5

[3 rows x 5 columns]

0.17開始,您可以使用reindex類的

In [795]: cols = ['a', 'b', 'b', 'a', 'c']

In [796]: df.reindex(columns=cols)
Out[796]:
   a  b  b  a  c
0  1  4  4  1  6
1  3  2  2  3  4
2  4  1  1  4  5

注意:理想情況下,您不希望具有重復的列名稱。

暫無
暫無

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

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