用 Python Pandas 编写一个程序,将数据框中的摄氏数据列转换为华氏温度

pythonpandasserver side programmingprogramming

将摄氏温度转换为华氏温度的结果为,

 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’ 列值的数据框

  • 在编写 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’ 的数据框列值

  • 在编写 lambda 函数中设置 df.apply 函数,通过乘以 (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

相关文章