[英]Changing column name and it's values at the same time
Pandas求助!
我有这样一个特定的专栏,
Mpg
0 18
1 17
2 19
3 21
4 16
5 15
Mpg 是英里每加仑,现在我需要将“MPG”列替换为“每 100 公里升”,同时将这些值更改为“每 100 公里升”。 有什么帮助吗? 预先感谢。 -汤姆
我更改了专栏的名称,但同时更改了这两个名称,但我做不到。
使用pop
返回并同时删除列,使用rdiv
进行转换(1 mpg = 1/235.15 liter/100km):
df['litre per 100 km'] = df.pop('Mpg').rdiv(235.15)
如果要在同一个 position 中insert
列:
df.insert(df.columns.get_loc('Mpg'), 'litre per 100 km',
df.pop('Mpg').rdiv(235.15))
Output:
litre per 100 km
0 13.063889
1 13.832353
2 12.376316
3 11.197619
4 14.696875
5 15.676667
pop
的替代方法是将结果存储在另一个 dataframe 中。这样您可以同时执行两个步骤。 在我下面的代码中,我首先复制您的 dataframe,然后存储转换常量并使用apply
方法对所有条目执行转换。
df = pd.DataFrame({'Mpg':[18,17,19,21,16,15]})
cc = 235.214583 # constant for conversion from mpg to L/100km
df2 = pd.DataFrame()
df2['litre per 100 km'] = df['Mpg'].apply(lambda x: cc/x)
print(df2)
这段代码的output是:
litre per 100 km
0 13.067477
1 13.836152
2 12.379715
3 11.200694
4 14.700911
5 15.680972
正如预期的那样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.