简体   繁体   English

在多索引的pandas数据框中创建多个新列

[英]Creating multiple new columns in a multiindexed pandas dataframe

Is it possible to create more than one new column in Pandas when a dataframe is multiindexed? 当数据帧是多索引时,是否可以在Pandas中创建多个新列? I would like to add a two new columns one and two under the bar2 supercolumn. 我想补充一两个新列onetwobar2 supercolumn。 Like so... 像这样......

import pandas as pd
import numpy as np
arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo'], 
          ['one', 'two', 'one', 'two', 'one', 'two']]   

index = pd.MultiIndex.from_arrays(arrays, names=['first', 'second'])
df = pd.DataFrame(np.random.randn(3, 6), index=[1, 2, 3], columns=index)

df["bar2", ["one", "two"]] = np.random.randn(3, 2)

I know I can create them one by one using 我知道我可以逐个创建它们

df["bar2", "one"] = np.random.randn(3,1)
df["bar2", "two"] = np.random.randn(3,1)

Is there a quicker way of doing both at the same time? 有没有更快的方法同时做两件事?

In [270]:
df_to_add = pd.DataFrame(np.random.randn(3,2) , columns=[['bar2' , 'bar2'] , ['one' , 'two']] , index = [1 , 2 , 3])
df_to_add
Out[270]:
           bar2
         one    two
1   0.119730    -0.265579
2   1.777329    -1.178128
3   -2.700409   0.457430

In [271]:    
pd.concat([df , df_to_add] , axis = 1)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM