用Python Pandas编写一个程序,将一个dataframe中的摄氏度数据列转换为华氏度
将摄氏度转换为华氏度的结果如下,
Id Celsius Fahrenheit
0 1 37.5 99.5
1 2 36.0 96.8
2 3 40.0 104.0
3 4 38.5 101.3
4 5 39.0 102.2
为了解决这个问题,我们将采取以下方法-
解决方法1
- 定义一个包含“Id”和“Celsius”列值的dataframe
-
在写入的lambda函数中应用df.assign函数,通过乘以(9/5)* df[celsius] +32来转换摄氏度值,并将其分配给华氏度。如下所示-
df.assign(Fahrenheit = lambda x: (9/5)*x['Celsius']+32)
例子
运行以下代码以更好地理解-
import pandas as pd
df = pd.DataFrame({'Id':[1,2,3,4,5],
'Celsius':[37.5,36,40,38.5,39]
})
print("DataFrame is\n",df)
df = df.assign(Fahrenheit = lambda x: (9/5)*x['Celsius']+32)
print(df)
输出
DataFrame is
Id Celsius
0 1 37.5
1 2 36.0
2 3 40.0
3 4 38.5
4 5 39.0
Id Celsius Fahrenheit
0 1 37.5 99.5
1 2 36.0 96.8
2 3 40.0 104.0
3 4 38.5 101.3
4 5 39.0 102.2
解决方法2
- 定义一个包含“Id”和“Celsius”列值的dataframe
-
将df.apply函数设置为写入lambda函数的一部分,通过乘以(9/5)* df[celsius] +32来转换摄氏度值,并将其保存在df[Fahrenheit]中。如下所示,
df['Fahrenheit'] = df.apply(lambda x: (9/5)*x['Celsius']+32,axis=1)
例子
运行以下代码以更好地理解-
import pandas as pd
df = pd.DataFrame({'Id':[1,2,3,4,5],
'Celsius':[37.5,36,40,38.5,39]
})
print("DataFrame is\n",df)
df['Fahrenheit'] = df.apply(lambda x: (9/5)*x['Celsius']+32,axis=1)
print(df)
输出
DataFrame is
Id Celsius
0 1 37.5
1 2 36.0
2 3 40.0
3 4 38.5
4 5 39.0
Id Celsius Fahrenheit
0 1 37.5 99.5
1 2 36.0 96.8
2 3 40.0 104.0
3 4 38.5 101.3
4 5 39.0 102.2