繁体   English   中英

如何在 Pandas 中创建一列虚拟变量?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM