gpt4 book ai didi

python - 将 Pandas 数据框转换为橙色数据表

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:29 26 4
gpt4 key购买 nike

我正在处理 pandas 数据框,我想将其转换为橙色数据表以估算缺失值。我的数据框看起来像

locationId rank Rating type  value
1 1 10 shop 2.668
2 4 8 store 3.921
3 3 NAN shop 3.122

其中 rank 是有序的,重复值在 1 到 5 之间。Type 是分类的,类型为 shop、store 等,rating 是整数类型。value 是 float 。我想将它转换成橙色数据表并估算缺失值。我也看过this但是这些函数给我一个错误,对我不起作用。

最佳答案

import numpy as np
import pandas as pd
import Orange
import csv
from io import StringIO
from collections import OrderedDict
from Orange.data import Table, Domain, ContinuousVariable, DiscreteVariable


def pandas_to_orange(df):
domain, attributes, metas = construct_domain(df)
orange_table = Orange.data.Table.from_numpy(domain = domain, X = df[attributes].values, Y = None, metas = df[metas].values, W = None)
return orange_table

def construct_domain(df):
columns = OrderedDict(df.dtypes)
attributes = OrderedDict()
metas = OrderedDict()
for name, dtype in columns.items():

if issubclass(dtype.type, np.number):
if len(df[name].unique()) >= 13 or issubclass(dtype.type, np.inexact) or (df[name].max() > len(df[name].unique())):
attributes[name] = Orange.data.ContinuousVariable(name)
else:
df[name] = df[name].astype(str)
attributes[name] = Orange.data.DiscreteVariable(name, values = sorted(df[name].unique().tolist()))
else:
metas[name] = Orange.data.StringVariable(name)

domain = Orange.data.Domain(attributes = attributes.values(), metas = metas.values())

return domain, list(attributes.keys()), list(metas.keys())

使用 -> pandas_to_orange(dataFrame)

关于python - 将 Pandas 数据框转换为橙色数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44626204/

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