gpt4 book ai didi

python-3.x - 当列数未知时,替换 Pandas Dataframe 中特定列中的值

转载 作者:行者123 更新时间:2023-12-04 01:33:48 27 4
gpt4 key购买 nike

我是 Python 和堆栈交换的新手。我一直在尝试用特定列中的 np.nan 替换无效值( x<-3 和 x>12 )。

我不知道我必须处理多少列,因此必须创建一个考虑到这一点的通用代码。但是我知道,前两列分别是 ID 和名称。我已经在 google 和 stacks exchange 上搜索了解决方案,但未能找到解决我的特定目标的解决方案。

我的问题是;如何替换第三列及以后的值?

我的数据框是这样的;

Data

我试过这一行:

Data[Data > 12.0] = np.nan.

这用 nan 替换了前两列

1st attempt

我试过这一行:

Data[(Data.iloc[(range(2,Columns))] >=12) & (Data.iloc[(range(2,Columns))]<=-3)] = np.nan

在哪里,

Columns = len(Data.columns)

替换第 2 行到第 6 行(列 = 7)中的所有值显然是错误的。

2nd attempt

如有任何想法,我们将不胜感激。

Darwin 上的 Python 3.6.1 64 位、Qt 5.6.2、PyQt5 5.6

最佳答案

您正在寻找 applymap() 方法。

import pandas as pd
import numpy as np

# get the columns after the second one
cols = Data.columns[2:]

# apply mask to those columns
new_df = Data[cols].applymap(lambda x: np.nan if x > 12 or x <= -3 else x)

文档:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.applymap.html

此方法假定第二个列之后的列包含 floatint 值。

关于python-3.x - 当列数未知时,替换 Pandas Dataframe 中特定列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47515626/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com