python - 根据 Python 中的其他列分配新列
问题描述
在 Python中,我试图在 a 中创建一个degree
新列dataframe
(每行它应该根据列中存在的值将这些列中任一列的值分配给新列。dataframe
null
null
我已经尝试了下面的代码,它给了我以下错误消息:
KeyError: 'degree'
代码是 -
for i in basicdataframe.index:
if pd.isnull(basicdataframe['section_degree'][i]) and pd.isnull(basicdataframe['model_degree'][i]):
basicdataframe['degree'][i] = basicdataframe['model_degree'][i]
elif pd.notnull(basicdataframe['section_degree'][i]) and pd.isnull(basicdataframe['model_degree'][i]):
basicdataframe['degree'][i] = basicdataframe['section_degree'][i]
elif pd.isnull(basicdataframe['section_degree'][i]) and pd.notnull(basicdataframe['model_degree'][i]):
basicdataframe['degree'][i] = basicdataframe['model_degree'][i]
elif pd.notnull(basicdataframe['section_degree'][i]) and pd.notnull(basicdataframe['model_degree'][i]):
basicdataframe['degree'][i] = basicdataframe['model_degree'][i]
有谁知道如何实现这一目标?
解决方案
假设您有这样的熊猫数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame(data={
"section_degree": [1, 2, np.nan, np.nan],
"model_degree": [np.nan, np.nan, np.nan, 3]
})
您可以定义将应用于 DataFrame 的函数:
def define_degree(x):
if pd.isnull(x["section_degree"]) and pd.isnull(x["model_degree"]):
return x["model_degree"]
elif pd.notnull(x['section_degree']) and pd.isnull(x['model_degree']):
return x["section_degree"]
elif pd.isnull(x['section_degree']) and pd.notnull(x['model_degree']):
return x["model_degree"]
elif pd.notnull(x['section_degree']) and pd.notnull(x['model_degree']):
return x["model_degree"]
df["degree"] = df.apply(define_degree, axis=1)
df
# output
section_degree model_degree degree
0 1.0 NaN 1.0
1 2.0 NaN 2.0
2 NaN NaN NaN
3 NaN 3.0 3.0
推荐阅读
- sql-server - Microsoft SQL Server Management Studio 维护计划未通过第一步
- javascript - 如何让 VSCode Intellisense 与 ServiceNow Script Includes 一起使用?
- laravel - Laravel 多态关系问题
- vb.net - 如何更改使用 VB 创建的文件夹的文件资源管理器图标
- dictionary - 跨越国家/地区的 Tableau 地图上的领导线
- eclipse - Eclipse 文本太大了
- python - 制作一个在 Tkinter 中打开另一个窗口的按钮
- java - com/google/common/base 方法未找到
- css - 使 css :hover 样式不会消失
- python - 如何使用 UI 集成在 Python 中创建计数计数器?