python - 如何返回熊猫数据框而不是系列
问题描述
我创建了一个函数来处理数据处理,例如填充空值,但函数的结果是返回一个系列而不是给我一个数据框。我该如何解决这个问题?
def preprocessing(df):
df_columns = ['column1', 'column2','column3','column4', 'column5', 'column6','column7', 'column8']
features= [c for c in df.columns.values if c in df_columns[0:2]]
df = df[features].notna()
features= [c for c in df.columns.values if c in df_columns[2:4]]
max = df[features].max()
df = df[features].fillna(max)
# Fill na with 0
features= [c for c in df.columns.values if c not in df_columns]
df = df[features].fillna(0)
return df
df = preprocessing(df)
df.isnull().sum()
解决方案
我认为你需要改变:
df = df[features].notna()
至:
df[features] = df[features].notna()
仅处理列表中的列,并为您的所有代码分配回。
它的意思是:
def preprocessing(df):
df_columns = ['column1', 'column2','column3','column4',
'column5', 'column6','column7', 'column8']
features= [c for c in df.columns.values if c in df_columns[0:2]]
df[features] = df[features].notna()
features= [c for c in df.columns.values if c in df_columns[2:4]]
max1 = df[features].max()
df[features] = df[features].fillna(max1)
# Fill na with 0
features= [c for c in df.columns.values if c not in df_columns]
df[features] = df[features].fillna(0)
return df
df = preprocessing(df)
df.isnull().sum()
推荐阅读
- python - 用 python 从 wikipedia 中抓取表格:无法获取列
- javascript - 仅查找以单引号或双引号开头的所有单词的正则表达式
- php - 谷歌字体突然停止在 Wordpress 网站上工作
- vba - 用超链接替换 Word 文件中所有出现的字符串
- c++ - c++中的时间线程
- c - 如何在 C 程序中运行程序并与之交互
- c++ - 为什么 ZwUnmapViewOfSection() 在给定 PE 基地址作为参数时会取消映射整个进程的内存?
- javascript - JavaScript 代码在函数之外执行两次
- access-token - 如何撤销 Identity Server 3 中的持久引用令牌
- html - 向 mat-chip 添加水平滚动条