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添加回答
举报
