【发布时间】:2018-01-17 23:56:19
【问题描述】:
我有一个包含两列(年份、时间)的数据框,它们是整数值。
import pandas as pd
import numpy as np
male100 = pd.read_csv('data/male100.csv', header = 0)
time_mean = male100['Time'].mean()
time_std = male100['Time'].std()
year_mean = male100['Year'].mean()
year_std = male100['Year'].std()
elem_nb = male100.shape[0]
for i in range(elem_nb):
male100.at[i, 'Year'] = male100.at[i, 'Year'] - year_mean
male100.at[i, 'Year'] = male100.at[i, 'Year'] / year_std
print(male100)
我的标准差year_std 是一个浮点值,我的平均值year_mean 是一个整数。
在这个阶段,male100 应该为Year 列的元素返回浮点值。 但是,情况并非如此,如下所示。
Year Time
0 -1 12.00
1 -1 11.00
2 -1 11.00
3 -1 11.20
4 -1 10.80
5 -1 10.80
6 0 10.80
7 0 10.60
8 0 10.80
9 0 10.30
10 0 10.30
11 0 10.30
12 0 10.40
13 0 10.50
14 0 10.20
15 0 10.00
16 0 9.95
17 0 10.14
18 0 10.06
19 0 10.25
20 0 9.99
21 0 9.92
22 1 9.96
23 1 9.84
24 1 9.87
25 1 9.85
26 1 9.69
我想male100.at[i, 'Year'] = male100.at[i, 'Year'] / year_std 这里有一个自动转换,但不明白为什么。或者这可能与更改 DataFrame 的数据类型有关。
我该如何克服这个问题?
【问题讨论】:
标签: python pandas machine-learning