我有以下数据帧df
;
Name Date Attr1 Attr2 Attr3
0 Joe 26-12-2007 53.45 53.4500 52.7200
1 Joe 27-12-2007 52.38 52.7399 51.0200
2 Joe 28-12-2007 51.71 51.8500 50.7300
我想将Attr1
、Attr2
、Attr3
列中的浮点值缩放到0到1之间。列中的最高值将缩放为1。请注意,并非所有列都要缩放。
我正在使用Python 3.6。
下面的代码将缩放所有列,但我需要缩放选定的列。另一个问题是有些列是日期和字符串形式。下面的代码将遇到将值转换为浮点值的问题。
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaled_values = scaler.fit_transform(df)
df.loc[:,:] = scaled_values
解决办法是:
在:
import pandas as pd
data = pd.DataFrame({'Name':['John','Sara','Martin'],'first':[53.45, 55.51, 51.22],'second':[51.45, 54.51, 57.22],'third':[50.45, 54.51, 58.22]})
data
输出:
Name first second third
0 John 53.45 51.45 50.45
1 Sara 55.51 54.51 54.51
2 Martin 51.22 57.22 58.22
在:
from sklearn.preprocessing import MinMaxScaler
sclr = MinMaxScaler()
new_df = sclr.fit_transform(data[['first', 'second', 'third']])
输出:
array([[ 0.51981352, 0. , 0. ],
[ 1. , 0.53032929, 0.52252252],
[ 0. , 1. , 1. ]])
问题内容: 我将数据存储在pandas数据框中,如下所示: 所以,我的数据看起来像这样 我想将其转换为另一个数据框。预期的输出可以在以下python脚本中显示: 因此,我的预期输出如下所示 实际上,我可以使用以下命令来找到所有组合并对其进行计数: 但是,事实证明,此类组合在单个列中。我想将组合中的每个值分隔到不同的列中,并且还要为计数结果增加一列。有可能这样做吗?请问您有什么建议吗?先感谢您。 问
这是一个非常基本的问题,我似乎找不到答案。 我有一个这样的数据帧,叫做df: 然后我从df中提取所有行,其中列'B'的值为'B.2'。我将这些结果分配给df_2。 df_2变成: 然后,我将列B中的所有值复制到名为D的新列中。使df_2成为: 当我执行这样的任务时: 我得到以下警告: 试图在数据帧切片的副本上设置值。尝试使用。loc[row\u indexer,col\u indexer]=改为v
我想使用两列作为行ID,同时计算基于时间的分组。请看下图: 转化成这样: 正在发生的是,X在时间10发生了0次,但在15和23发生了1次。 Y在10点钟发生了3次,但在15和23没有。等等。
问题内容: 这可能很容易,但是我有以下数据: 在数据框1中: 在数据框2中: 我想要一个具有以下形式的数据框: 我尝试使用该方法,但是得到了交叉连接(即笛卡尔积)。 什么是正确的方法? 问题答案: 通常看来,您只是在寻找联接:
问题内容: 我有一个OHLC价格数据集,该数据集已从CSV解析为Pandas数据框,并重新采样为15分钟的柱形: 我想添加各种计算的列,从简单的列开始,例如期间范围(HL),然后是布尔值以指示我将定义的价格模式的出现-例如锤形蜡烛模式,为其定义示例: 基本问题:如何将函数映射到列,特别是在我想引用多个其他列或整行或其他内容的地方? 这篇文章处理从单个源列添加两个计算列,这是很接近的,但还不完全是。
我有以下数据框: 我想将其转换为: i、 e.我希望保留前4列,但将剩余的每列值分配到单独的行中。有没有一种不使用for循环的方法来实现这一点?