3 回答
TA贡献1780条经验 获得超5个赞
这可能有效:
import pandas as pd
ddict = {
'col1':['A','A','B','X'],
'col2':['A','A','B','X'],
'col3':['A','A','B','X'],
}
df = pd.DataFrame(ddict)
df.loc[:, ['col1', 'col2', 'col3']].rename(columns={"col3":"anothercol"}).assign(newcol=3)
结果:
col1 col2 anothercol newcol
0 A A A 3
1 A A A 3
2 B B B 3
3 X X X 3
TA贡献1772条经验 获得超5个赞
您可以df.assign为此使用:
例子 :
>>> df = pd.DataFrame({'temp_c': [17.0, 25.0]},
index=['Portland', 'Berkeley'])
>>> df
temp_c
Portland 17.0
Berkeley 25.0
>>> df.assign(temp_f=lambda x: x.temp_c * 9 / 5 + 32)
temp_c temp_f
Portland 17.0 62.6
Berkeley 25.0 77.0
>>> df.assign(newcol=3).rename(columns={"temp_c":"anothercol"}
anothercol newcol
Portland 17.0 3
Berkeley 25.0 3
然后您可以将其分配给df2
.
TA贡献1807条经验 获得超9个赞
我不知道 R,但我看到的是您正在添加一个名为 的新列,newcol
该列的所有行的值为 3。
您还将列从col3
重命名为anothercol
。
你真的不需要执行该copy
步骤。
df2 = df.rename(columns = {'col3': 'anothercol'}) df2['newcol'] = 3
添加回答
举报