繁体   English   中英

同时更改列名及其值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM