[英]How to create a column of dummies variables in Pandas?
我有一列时间序列数据看起来像这样
TimeStamp Data
2002-01-01 00:00:00 0.00120
2002-01-01 08:00:00 0.00070
2002-01-01 12:00:00 0.00000
2002-01-01 16:00:00 -0.00440
...
2003-01-01 12:00:00 0.00220
2003-01-01 16:00:00 -0.00440
一般情况下,列中有正数、负数和0.00000
。 我想添加一个虚拟列,所有正数用 1 表示,负数用 0 表示, 0.00000
用 2 表示。我可以用循环来做到这一点,但如果我使用 Pandas,这似乎不是一个聪明的主意。
谁能告诉我在 Pandas 中这样做的正确方法? 谢谢!
你可以这样做:
# initialise a column named sign
df["sign"] = [0]*df.shape[0]
# apply to all cases
df.loc[df["Data"] < 0, "sign"] = 0
df.loc[df["Data"] > 0, "sign"] = 1
df.loc[df["Data"] == 0, "sign"] = 2
有np.sign
为+,0,-
提供1,0,-1
,如果它适合您:
df['sign'] = np.sign(df['Data'])
您可以使用 numpy select
:
df['dummy'] = np.select((df.Data<0, df.Data>0), (0,1), 2)
我相信这应该有效。
df.loc[df['Data']>0,'Dummy Column'] = 1
df.loc[df['Data']<0,'Dummy Column'] = 0
df.loc[df['Data']==0,'Dummy Column'] = 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.