python - Pandas 数据框无法识别多个 if 语句
问题描述
我有一个如下所示的数据框,其中 Hour 列是一系列整数:
|Hour|
0|23 |
1|14 |
2|6 |
3|2 |
我想要的输出如下:
|Hour| TimeofDay |
0|23 | Late Evening|
1|14 | Mid Day |
2|6 | Morning |
3|2 | Morning |
为了达到这个结果,我使用了以下代码行:
for index, row in df.iterrows():
if row["Hour"] > 16:
df['TimeofDay'] = "Late Evening"
elif np.logical_and(row["Hour"] > 8 , row["Hour"] <= 16):
df['HarshEventTime'] = "Mid Day"
else :
df['HarshEventTime'] = "Morning"
不幸的是,我的输出如下:
|Hour| TimeofDay |
0|23 | Morning |
1|14 | Morning |
2|6 | Morning |
3|2 | Morning |
我的 if 语句没有正确读取我的条件是否有原因?
解决方案
我发现将 pandas 的 .loc 函数用于 if 语句更容易,您想要的输出代码如下:
df['TimeofDay'] = "Morning"
df.loc[(df["Hour"] > 8) & (df["Hour"] <= 16), 'TimeofDay'] = "Late Evening"
df.loc[df['Hour'] > 16, 'TimeofDay'] = "Late Evening"
您从 else 语句开始,然后应用任何会更改该列的条件。
推荐阅读
- java - 将两个变量的输入传递给数组并传递给引用类中的构造函数并打印它们
- c# - 将值添加到数组中的新行
- image-processing - 保存CNN模型的输出图像
- python - 通过阅读文本来录制语音的 API
- css - 用于样式化组件的 Gap Polyfill 和 Gatsby / Safari 支持
- python - 从使用 React 的网站获取所有 HTML 代码
- strapi - Strapi 图像文件夹
- javascript - Ajax 总是返回数据,但警报中没有数据
- python-3.x - Python_BeautifulSoup : 从 html 文件中提取属性数据
- c# - 检查使用 SignalR 的自托管是否正在侦听