我有一个仅包含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())
这将根据每个系列中的最大值将每个系列转换为[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的正确方法是什么?