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不变。
我该怎么做?
答案 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)))