gpt4 book ai didi

python - 函数内的函数涉及 Python 中 DataFrame 的每一列

转载 作者:行者123 更新时间:2023-12-01 09:08:46 27 4
gpt4 key购买 nike

正如问题所述,我正在尝试学习如何在属于 DataFrame 中的列的每个元素上运行函数,而不必直接定义该列。关键是我希望能够输入任何给定的 DataFrame 集合并找到每列中满足特定条件的每个元素。

我包含的示例说明了我正在尝试做的事情。我知道下面的代码不起作用,我认为编写 def fun(dataframe[column]) 可以解决问题,但不幸的是,语法不正确。

基本上,这样做的原因是我有多组数据,我想在其中找到高于设定阈值的每个元素。

提前非常感谢!

df=pd.DataFrame(np.random.randint(0,100,size=(3, 3)), columns=list('ABC'))
def fun(dataframe):
for column in dataframe:
def fun(column):
mean= sum(column)/len(column)
print (mean)
for element in column:
if element < mean*1.1:
element = 0
print (element)
fun(df)

最佳答案

正如 @MadPhysicist 在评论中提到的,创建 pandas 是为了减少显式 for 循环的需要。

如果我正确理解您的具体情况,您打算将任何小于其列平均值 1.1 倍的元素替换为零。这是在惯用的 pandas 中执行此操作的一种方法:

# Set a random seed for repeatability
np.random.seed(314159)

# Create example data
df = pd.DataFrame(np.random.randint(0,100,size=(3, 3)), columns=list('ABC'))
df
A B C
0 11 34 93
1 79 0 81
2 66 43 71

# By default, df.mean() computes the mean of each numeric column (not row)
df.mean()
A 52.000000
B 25.666667
C 81.666667
dtype: float64

# We can use boolean indexing to replace values less than
# 1.1 * column mean with zero
# docs: https://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-indexing
df[df < 1.1 * df.mean()] = 0

df
A B C
0 0 34 93
1 79 0 0
2 66 43 0

关于python - 函数内的函数涉及 Python 中 DataFrame 的每一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51831169/

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