我有一个Pandas DataFrame
,想用一个新列替换一个列。该列应该有一个新的名称和一个列表给出其内容。我可以用两种不同的方式来做这件事。请参阅下面的代码。
import pandas as pd
df = pd.DataFrame({
'Name': ['Alice','Bob','Charlie'],
'Age': [18,19,20]
})
print('df=\n',df,'\n')
marks = [50,60,90]
# Drop and add
df1 = df.drop(columns = ['Age'])
df1['Marks'] = marks
print('df1=\n',df1,'\n')
print()
# Rename and assign
df1 = df.rename(columns={'Age':'Marks'})
df1 = df1.assign(Marks=marks)
print('df1=\n',df1)
输出量:
df=
Name Age
0 Alice 18
1 Bob 19
2 Charlie 20
df1=
Name Marks
0 Alice 50
1 Bob 60
2 Charlie 90
df1=
Name Marks
0 Alice 50
1 Bob 60
2 Charlie 90
我的问题是:有没有更优雅的或一行代码来执行这个“替换列”操作?
3条答案
按热度按时间9jyewag01#
您可以在一行中使用
drop
和assign
:如果新列名中有空格:
xoefb8l82#
是的,您可以使用此代码执行此分配和删除
现在你得到你想要的了
oogrdqng3#
您也可以将
rename
与update
一起使用