gpt4 book ai didi

python - 清理和填充数据科学分析的分类变量

转载 作者:行者123 更新时间:2023-12-01 07:53:16 25 4
gpt4 key购买 nike

我正在解决我的第一个机器学习问题,并且正在努力清理数据集中的分类特征。我的目标是建立一个攀岩推荐系统。

问题 1:

我有三列相关的列,其中包含错误信息:

现在的样子: Example Table

我希望它看起来像: Would like my table to look like this...

如果按位置名称进行分组,则会有不同的 location_id 数字和与该名称关联的国家/地区。然而,这些差异中的每一个都有明显的赢家/明显的多数。我有一个包含 200 万个条目的数据集,并且鉴于 location_name 的 location_id 和 location_country 模式是压倒性的,指向一个答案(例如:clear_creek 的“300”和“USA”)。

使用pandas/python,如何按location_name对数据集进行分组,根据该位置名称计算location_id和location_country的模式,然后根据location_name用这些模式计算替换整个id和国家列以进行清理我的数据?

我已经尝试过 groupby、replace、duplicate,但我认为最终我需要创建一个函数来执行此操作,老实说我不知道​​从哪里开始。 (我提前为我的编码天真道歉)我知道一定有一个解决方案,我只需要指出正确的方向。

问题 2:

此外,有人对在我的 location_name 类别 (42,012/2 百万) 和 location_country (46,890/2 百万) 列中填写 NaN 值有建议吗?最好保留为未知值吗?我觉得根据频率填写这些特征会对我的数据集产生可怕的偏差。

data = {'index': [1,2,3,4,5,6,7,8,9], 
'location_name': ['kalaymous', 'kalaymous', 'kalaymous', 'kalaymous',
'clear_creek', 'clear_creek', 'clear_creek',
'clear_creek', 'clear_creek'],
'location_id': [100,100,0,100,300,625,300,300,300],
'location_country': ['GRC', 'GRC', 'ESP', 'GRC', 'USA', 'IRE',
'USA', 'USA', 'USA']}
df = pd.DataFrame.from_dict(data)

***寻找它返回:

improved_data = {'index': [1,2,3,4,5,6,7,8,9], 
'location_name': ['kalaymous', 'kalaymous', 'kalaymous', 'kalaymous',
'clear_creek', 'clear_creek', 'clear_creek',
'clear_creek', 'clear_creek'],
'location_id': [100,100,100,100,300,300,300,300,300],
'location_country': ['GRC', 'GRC', 'GRC', 'GRC', 'USA', 'USA',
'USA', 'USA', 'USA']}

new_df = pd.DataFrame.from_dict(improved_data)

最佳答案

我们可以使用.aggpd.Series.mode 结合并将其转换回您的数据框 map :

m1 = df.groupby('location_name')['location_id'].agg(pd.Series.mode)
m2 = df.groupby('location_name')['location_country'].agg(pd.Series.mode)

df['location_id'] = df['location_name'].map(m1)
df['location_country'] = df['location_name'].map(m2)
<小时/>
print(df)
index location_name location_id location_country
0 1 kalaymous 100 GRC
1 2 kalaymous 100 GRC
2 3 kalaymous 100 GRC
3 4 kalaymous 100 GRC
4 5 clear_creek 300 USA
5 6 clear_creek 300 USA
6 7 clear_creek 300 USA
7 8 clear_creek 300 USA
8 9 clear_creek 300 USA

关于python - 清理和填充数据科学分析的分类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56092440/

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