【发布时间】:2023-03-14 22:27:01
【问题描述】:
如下两列的数据框。
我想通过给出日期来选择部分,并规范化(通过使用 min-max 方法)“重量”。
这是我的计划:
import pandas as pd
data = {'Date': ["2000-02-01", "2000-03-01", "2000-04-03", "2000-05-01", "2000-06-01", "2000-07-03", "2000-08-01", "2000-09-01", "2000-10-02", "2000-11-01"],
'Weight' : [478, 26, 144, 9, 453, 24, 383, 314, 291, 286]}
df = pd.DataFrame(data)
df_1 = df.loc[df['Date'] >= "2000-04-01"]
df_1 = (df_1 - df_1.min()) / (df_1.max() - df_1.min())
print df_1
# the ideal output is two columns: 1 for Dates after "2000-04-01". 1 for their correspondent normalized "Weights".
报错:
TypeError: unsupported operand type(s) for -: 'str' and 'str'
我怎样才能实现它?谢谢。
【问题讨论】:
-
日期是字符串,你应该先将它们转换为
datetime对象。df['Date']=pd.to_datetime(df['Date'])查找其他问题以了解有关转换的更多信息 -
您用于“规范化”的逻辑是什么?我不清楚。您是否希望列
Weight在特定输出之后相同?如果您粘贴预期的输出,那将非常有用。
标签: python pandas dataframe normalization