一个非常简单的熊猫问题:
如果我有这样的数据帧:
hour
0 0
1 1
2 1
3 2
4 2
...
Run Code Online (Sandbox Code Playgroud)
我想创建一个新的"午餐"栏目,如果11 <=小时<= 1则值为1,否则,最好和计算最快的方法是什么?
你可以使用矢量化方法(减运算符在这里取消布尔掩码):
df['lunch'] = (-df.hour.isin(range(2,11))).astype(int)
Out[368]:
hour lunch
0 0 1
1 1 1
2 1 1
3 2 0
4 2 0
Run Code Online (Sandbox Code Playgroud)
你可以
In [231]: df['lunch'] = (df['hour']<=11) & (df['hour']<=1)
In [232]: df['lunch']
Out[232]:
0 True
1 True
2 True
3 False
4 False
Name: lunch, dtype: bool
In [233]: df['lunch'].astype(int)
Out[233]:
0 1
1 1
2 1
3 0
4 0
Name: lunch, dtype: int32
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2466 次 |
| 最近记录: |