python - Pandas中Dataframe的递增列
问题描述
我正在尝试合并多个 Pandas 数据框以从中创建聚合数据框。我想要做的一部分是计算有多少原始数据帧具有给定行的数据。我需要这些行有 0 而不是 NaN,但知道如果“完成”列包含 0,那么这里最初没有数据。
这是我尝试过的:
daytona_stats = pd.merge(entry_list, track1_cut,
on='Driver', how='left').fillna(0)
print(entry_list.head())
print(track1_cut.head())
print(daytona_stats.head())
if daytona_stats['Finish'] > 0:
daytona_stats['races'] += 1
这返回
Driver ... avg_quality_passes
0 Joey Gase ... 0.0
1 Jamie McMurray ... 0.0
2 Brad Keselowski ... 0.0
3 Austin Dillon ... 0.0
4 Kevin Harvick ... 0.0
[5 rows x 6 columns]
Driver Finish ... Pct. Top 15 Laps Quality Passes
0 Austin Dillon 1 ... 40.6 67
1 Bubba Wallace 2 ... 78.3 161
2 Denny Hamlin 3 ... 66.7 101
3 Joey Logano 4 ... 74.9 133
4 Chris Buescher 5 ... 40.1 52
[5 rows x 5 columns]
Driver races ... Pct. Top 15 Laps Quality Passes
0 Joey Gase 0.0 ... 0.0 0.0
1 Jamie McMurray 0.0 ... 0.0 2.0
2 Brad Keselowski 0.0 ... 39.6 133.0
3 Austin Dillon 0.0 ... 40.6 67.0
4 Kevin Harvick 0.0 ... 44.0 171.0
[5 rows x 10 columns]
Traceback (most recent call last):
File "C:\EclipseWorkspaces\csse120\Personal\Personal_Projects\Daytona_Projections.py", line 48, in <module>
if daytona_stats['Finish'] > 0:
File "C:\Users\burusj\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\generic.py", line 1573, in __nonzero__
.format(self.__class__.__name__))
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
解决方案
我认为这可以工作:
daytona_stats.loc[daytona_stats['Finish'] > 0,'races'] += 1
代替:
if daytona_stats['Finish'] > 0:
daytona_stats['races'] += 1
您可以在pandas
有关索引的教程中阅读更多为什么它可以工作。
推荐阅读
- macos - ffplay 无法将多个玩家定位在屏幕上的不同位置
- bixby - 音频有原始类型吗?
- django - 如何在 django 中设置模板目录。?
- tensorflow - TFRecord 应该包含多个观察值还是一个?
- swift - 在 SwiftUI 中,如何更改 List 堆叠行的方式?
- typescript - 正确的类型特化
- python - ImportError:无法从“matplotlib.cbook”导入名称“is_string_like”
- javascript - 在模式中单击单元格或作为弹出窗口或警报对话框时显示表格单元格详细信息
- django - 如何使 Django Admin 中的所有“内联”可折叠项目默认打开?
- ios - Xcode 11.4 错误 - 无法在设备上安装一个或多个配置文件