gpt4 book ai didi

python - 根据频率,用列中的随机值填充 DataFrame 的 NaN 值

转载 作者:行者123 更新时间:2023-12-04 15:11:47 27 4
gpt4 key购买 nike

我正在尝试使用每列的随机数据填充 Pandas 数据帧 NAN,并且随机数据出现在每列中取决于其频率。我有这个:

def MissingRandom(dataframe):
import random
dataframe = dataframe.apply(lambda x: x.fillna(
random.choices(x.value_counts().keys(),
weights = list(x.value_counts()))[0]))
return dataframe

我得到的 DataFrame 填充了随机数据,但它的相同数据用于列中所有缺失的数据。我希望这个数据对于每一个列的缺失都是不同的,但我做不到。谁能帮帮我?

非常感谢

最佳答案

请看下面我的解决方案。首先,我创建了一个根据您的标准(频率作为随机函数中的权重)填充系列的函数,最后,我们将此函数应用于数据帧的所有列:

from collections import Counter
def fillcolumn(ser):
cna=len(ser[ser.isna()])
l=ser[ser.notna()]
d=Counter(l)
m=random.choices(list(d.keys()), weights = list(d.values()), k=cna)
ser[ser.isna()]=m
return ser

for i in df.columns:
df[i]=fillcolumn(df[i])

您的完整代码:

def MissingRandom(dataframe):
import random
from collections import Counter
def fillcolumn(ser):
cna=len(ser[ser.isna()])
l=ser[ser.notna()]
d=Counter(l)
m=random.choices(list(d.keys()), weights = list(d.values()), k=cna)
ser[ser.isna()]=m
return ser

for i in dataframe.columns:
dataframe[i]=fillcolumn(dataframe[i])
return dataframe

关于python - 根据频率,用列中的随机值填充 DataFrame 的 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65096532/

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