python - 从数据框列值创建一个函数并插入另一列的空白元素
问题描述
我有一个数据框(df),它看起来像:
FHE
0 1
1 1
2 1
3
4 1
5 0.77027027
我正在尝试创建一个名为 FHE_TO_USE 的新列,它复制 FHE 列并创建 FHE 列的平均值并用平均值填充任何空白。所以解决方案看起来像:
FHE FHE_TO_USE
0 1 1
1 1 1
2 1 1
3 0.95405405
4 1 1
5 0.77027027 0.77027027
我试过以下没有成功:
df["FHE"] = np.where(df["PATTERN"]=="FT",1,df["FHE"])
df["FHE"] = df["FHE"].convert_objects(convert_numeric=True)
df["FHE_TO_USE"] = np.where(df["FHE"]=="",statistics.mean(df["FHE"]),df["FHE"])
这也给了我一个未来的警告:
FutureWarning: convert_objects is deprecated. To re-infer data dtypes for object columns, use Series.infer_objects()
For all other conversions use the data-type specific converters pd.to_datetime, pd.to_timedelta and pd.to_numeric.
创建均值的正确方法是什么?
解决方案
您可以使用以下功能fillna()
:
df['FHE'] = pd.to_numeric(df.FHE, errors='coerce')
df['FHE_TO_USE'] = df.FHE.fillna(df.FHE.mean())
结果:
FHE FHE_TO_USE
0 1.00000 1.000000
1 1.00000 1.000000
2 1.00000 1.000000
3 NaN 0.954054
4 1.00000 1.000000
5 0.77027 0.770270
推荐阅读
- python-3.x - Reshaping 1-D Data to 2-D Data for Matplotlib Pcolormesh
- php - PHP parse array to get index wise result
- python - Scrapy - multiple spiders - processing data from one spider while other are still running
- apache-spark - PySpark 中的 ModuleNotFoundError 在 serializers.py 中引起
- python - bad key error occurred when tried to fetch data from api endpoint in python?
- apache-flink - Supported data types in Flink SQL
- apache-kafka - Kafka Schema Registry JSON Schema Restproxy 问题
- python - Python模块(pyenv)安装不起作用
- flutter - 如何在颤振中使用电报 api 创建消息模块
- windows - 在 PowerShell 中查找超过 x 天的文件