python - 迭代具有相同列标题的 pandas DataFrame
问题描述
我正在尝试遍历 Pandas DataFrame 的行和列,并在满足某些条件时将结果写入新的 DataFrame。我能够迭代以下具有不同名称的行和列的 DataFrame。
W0O5 W1O5 W2O5 W3O5
W0O5 0.0 0.0 0.0 0.0
W1O5 0.0 0.0 1.0 0.0
W2O5 0.0 1.0 0.0 0.0
W3O5 0.0 0.0 0.0 0.0
我使用了以下方法
for i in pandas_df.index:
for j in pandas_df.columns:
print(i, j)
print(pandas_df.at[i, j])
if pandas_df.at[i, j] ==1:
single_pandas_df.at['WO5', 'WO5_corner'] =1
其中 single_pandas_df 是我创建的新 DataFrame,我想在其上添加相应行和列的值。
但是,当我尝试遍历包含相同标题的行和列的 DataFrame 时,如下所示:
WO5 WO5 WO5 WO5
WO5 0.0 0.0 0.0 0.0
WO5 0.0 0.0 1.0 0.0
WO5 0.0 1.0 0.0 0.0
WO5 0.0 0.0 0.0 0.0
我得到 AttributeError 说
AttributeError:“BlockManager”对象没有属性“T”
我知道错误是由于重复的列名造成的。我很好奇有没有办法在熊猫中处理这种情况。在第二种情况下,我拥有所有的 DataFrame,我需要从行和列中获取每个索引的值。
提前致谢。
Yolos评论后更新:实际上我有很多这样的DataFrames如下
DyO7 DyO7 DyO6 DyO7 DyO7 DyO6
DyO7 0.0 3.0 1.0 2.0 1.0 0.0
DyO7 3.0 0.0 0.0 1.0 0.0 1.0
DyO6 1.0 0.0 0.0 0.0 1.0 0.0
DyO7 2.0 1.0 0.0 0.0 3.0 1.0
DyO7 1.0 0.0 1.0 3.0 0.0 0.0
DyO6 0.0 1.0 0.0 1.0 0.0 0.0
下一个为
TaO6 TaO6
TaO6 0.0 1.0
TaO6 1.0 0.0
在这些 DataFrames 1、2 和 3 中,代表角、边和人脸共享。因此,如果 DataFrame 中的 (i,j) 项为 1,则转到“...”_corner,如果 2 则转到边缘,3 转到面。
我最初的 single_pandas DataFrame 如下所示
DyO6_corner DyO6_edge DyO6_face DyO7_corner DyO7_edge DyO7_face TaO6_corner TaO6_edge TaO6_face WO5_corner WO5_edge WO5_face
DyO6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
DyO7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
TaO6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
WO5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
从我上面的脚本更新这个 single_pandas DataFrame 后,('WO5', 'WO5_corner') 将有 1,它变为:
DyO6_corner DyO6_edge DyO6_face DyO7_corner DyO7_edge DyO7_face TaO6_corner TaO6_edge TaO6_face WO5_corner WO5_edge WO5_face
DyO6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
DyO7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
TaO6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
WO5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1 0.0 0.0
解决方案
推荐阅读
- jquery - JQ Grid 工具栏搜索不适用于日期列
- c# - 为 SingleOrDefault Linq 方法定义默认值
- dynamics-crm - 创建一个工作流/对话,提示更新现有字段?
- amazon-web-services - 如何使用 AWS 帐户登录而不是 Cognito 登录来保护 Kibana?
- spring-boot - 使用ShedLock让ThreadPoolTaskScheduler处理多个调度任务的分布式锁问题
- kotlin - Elvis 运算符的行为?:在 Kotlin 中
- python - 在将 SFTP 与 Paramiko 连接时遇到糟糕的未处理类型 3(“未实现”)
- vba - VBA:将数组从函数返回到电子表格
- angular - 如何合并这两个可观察对象并删除嵌套的可观察对象?
- javascript - 为什么不,我怎么能看到纱线日志?