如何添加新列(不替换)

时间:2019-01-26 21:42:17

标签: pandas

import pandas as pd

test=[
      [14,12,1,13,15],
      [11,21,1,19,32],
      [48,16,1,16,12],
      [22,24,1,18,41],
     ]

df = pd.DataFrame(test)
x = [1,2,3,4]
df['new'] = pd.DataFrame(x)

在此示例中,df将创建新列“ new”

我想要的是...

我想创建一个新的DataFrame(df1)包含列“ new”(六列),并且df不变(只有五列)。

我希望df不变。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用DataFrame创建新的.assign

import pandas as pd

df= pd.DataFrame(test)
df1 = df.assign(new=x)

print(df)
    0   1  2   3   4
0  14  12  1  13  15
1  11  21  1  19  32
2  48  16  1  16  12
3  22  24  1  18  41

print(df1)
    0   1  2   3   4  new
0  14  12  1  13  15    1
1  11  21  1  19  32    2
2  48  16  1  16  12    3
3  22  24  1  18  41    4

.assign返回一个新对象,因此您可以在不影响原始对象的情况下对其进行修改。另一个选择是

df1 = df.copy()  #New object, modifications do not affect `df`.
df1['new'] = x

答案 1 :(得分:0)

或者,“ e”是新列,np random为新列创建随机值

df.insert(len(df.columns),'e',np.random.randint(0,5,(5,1)))