当前位置: 首页 > 知识库问答 >
问题:

如何将整数列转换为[0,1]的值范围?[副本]

巢嘉志
2023-03-14

我有一个仅包含int值的数据集,我想将这些int值转换为[0,1]的范围。我这里有两种方法已经奏效了。不过,我想试试带有pandas的。现在我的问题是,如何将每列转换为[0,1]的值范围,而不违反值,即更改值。例如,因为3代表一个类。

# My first try without pandas:


# Load a CSV file
def load_csv(filename):
    dataset = list()
    with open(filename, 'r') as file:
         csv_reader = reader(file)
         for row in csv_reader:
             if not row:
                 continue
             dataset.append(row)
    return dataset

# Find the min and max values for each column
def dataset_minmax(dataset):
    minmax = list()
    stats = [[min(column), max(column)] for column in zip(*dataset)]
    return stats
 
# Rescale dataset columns to the range 0-1
def normalize_dataset(dataset, minmax):
    for row in dataset:
        for i in range(len(row)-1):
            row[i] = (row[i] - minmax[i][0]) / (minmax[i][1] - minmax[i][0])
minmax = dataset_minmax(dataset)
normalize_dataset(dataset, minmax)
Dataframe:
import pandas as pd
d = {'int1': [1, 2, 1], 'int2': [3, 4, 5]}
# df = pd.read_csv('test.csv')
df = pd.DataFrame(data=d)

print(df['int1'].min()) # What I found, it give me the min and max back
print(df['int1'].max())

共有1个答案

曾修真
2023-03-14

这将根据每个系列中的最大值将每个系列转换为[0,1]

import pandas as pd
d = {'int1': [1, 2, 1], 'int2': [3, 4, 5]}
df = pd.DataFrame(data=d)
df = df.apply(lambda col: col.div(col.max()))
#    int1  int2
# 0   0.5   0.6
# 1   1.0   0.8
# 2   0.5   1.0
 类似资料:
  • 问题内容: python中是否存在可以将不断增加的整数列表转换为范围列表的内容 例如,给定集合{0,1,2,3,4,7,8,9,11},我想得到{{0,4},{7,9},{11,11}}。 我可以编写一个程序来执行此操作,但想知道python中是否有内置函数 问题答案: 使用产生了一个简洁但棘手的实现: 输出:

  • 我想使用python将字符串转换成整数列表。一些例子可能是: 有没有快速简单的方法来做到这一点?

  • 我们有一个对象/数组/列表,其中有这种格式的数据-[100, 200, 300, 400,......1000]或[150, 300, 450,....1500]。这些值在nvd3图中用作yAxis值。数据点的总数总是10。 我们有一个要求,而不是将这些整数显示为yAxis点,我们需要将值显示为一个范围,如[0-99100-199200-299…900-1000]或[0-149150-299300

  • 问题内容: 是否有任何技术可以允许这样的行设置 产生结果 实际上,这是行到范围的操作。我正在Oracle Land上玩,并且希望您提出任何建议。 问题答案: 我觉得可能可以对此进行改进,但是它可以起作用:

  • 大家好,我有一个数据集,看起来像下面的df1,我想让它看起来像使用熊猫的df2。我曾经尝试过使用枢轴和转置,但我不知道该怎么做。谢谢你的帮助!

  • 我想将时间间隔配置存储到数据库中,如下所示: 但是我不知道如何将例如值转换为LocalDateTime,因为我想使用此值来计算SQL查询的时间间隔。 将此值转换为LocaLDateTime的正确方法是什么?