【发布时间】:2020-06-12 19:32:35
【问题描述】:
我正在使用一个大型 pandas 数据框,并在其中创建了一个新的空列。我想要做的是迭代数据框特定列中的每个值,进行布尔检查,然后根据值检查的输出为新列分配一个值。
我认为我需要使用 for 循环来检查指定列中每个单元格的各个内容。问题是我似乎无法找出正确的语法来正确编写检查特定列中值的 for 循环。这是我目前所拥有的。
call_info['% of Net Capital'] = call_info['Call Amount'] / call_info['Net Capital']
for (ColumnData) in call_info['Call Amount']:
columnSeriesObj = call_info[ColumnData]
if columnSeriesObj.any - call_info['Excess Deficit'].any > 0:
call_info['Sufficient Excess?'][ColumnData] = True
else:
call_info['Sufficient Excess?'][ColumnData] = False
我得到一个 KeyError:38749372
call_info 是一个熊猫数据框。我正在尝试将 call_info['Call Amount'] 与 call_info['Excess Deficit'] 进行比较,并在 call_info['Sufficient Excess?'] 中输入 True 或 false 值
**已更新以包含我的数据框示例和预期输出
我已经使用 openpyxl load_workbook 从这个 CSV 文件中加载了数据 从那里,我使用以下代码将数据转换为 Pandas 数据框:
from itertools import islice
data = sheet_ranges.values
cols = next(data)[1:]
data = list(data)
idx = [r[0] for r in data]
data = (islice(r, 1, None) for r in data)
df = pd.DataFrame(data, index=idx, columns=cols)
我已经能够在 Excel 中执行此操作,但我希望自动化该过程
【问题讨论】:
-
你能提供一个你的数据框的例子吗?以及预期的结果
-
为了清楚起见,我刚刚更新了。谢谢你的建议
标签: python-3.x pandas loops dataframe iteration