python - Python - 如何遍历数据框以附加每一行
问题描述
关于如何在保持相同输出的同时附加数据框的快速问题。示例代码如下。
import pandas as pd
df = pd.read_csv('C:\\Blah\\Code1.csv')
Z = {
df.iloc[0,1]: {df.iloc[0,2]: 100, df.iloc[0,3]: 200, df.iloc[0,4]: 500},
df.iloc[1,1]: {df.iloc[1,2]: 100, df.iloc[1,3]: 200, df.iloc[1,4]: 500},
df.iloc[2,1]: {df.iloc[2,2]: 100, df.iloc[2,3]: 200, df.iloc[2,4]: 500},
df.iloc[3,1]: {df.iloc[3,2]: 100, df.iloc[3,3]: 200, df.iloc[3,4]: 500},
df.iloc[4,1]: {df.iloc[4,2]: 100, df.iloc[4,3]: 200, df.iloc[4,4]: 500},
}
print(Z)
df.iloc对应一个excel文件,输出为:
{'Steve': {'Bob': 100, 'Eric': 200, 'Very': 500}, 'Pokemon': {'Yugioh': 100, 'Steve': 200, 'Cool': 500}, 'Save': {'Really': 100, 'Now': 200, 'Stuff': 500}, 'Tons': {'Of': 100, 'Code': 200, 'Filler': 500}, 'Amazing': {'Truly ': 100, 'Incredible': 200, 'Text': 500}}
当我尝试运行一个while循环时,我只得到最后一行(用变量替换0)当我尝试在.iloc中输入一个范围时,我得到“系列对象不可变”错误
如何修改代码以获得与上面完全相同的输出,但行数更少(原始行数为 100)
编辑:简化问题只包含示例代码。EDIT2:While循环代码和输出。
import pandas as pd
df = pd.read_csv('C:\\Blah\\Code1.csv')
C = 0
while C < 5:
Z = {
df.iloc[C,1]: {df.iloc[C,2]: 100, df.iloc[C,3]: 200, df.iloc[C,4]: 500},
}
C += 1
print(Z)
下面的输出:{'Amazing': {'Truly': 100, 'Incredible': 200, 'Text': 500}}
解决方案
如果您想就地修改数据框;
C = 0
while C < 5:
df.iloc[C,2] = 100
df.iloc[C,3] = 200
df.iloc[C,4] = 500
C += 1
如果你想有一本额外的字典;
Z = {}
C = 0
while C < 5:
Z[df.iloc[C,1]] = {df.iloc[C,2]: 100, df.iloc[C,3]: 200, df.iloc[C,4]: 500}
C += 1
推荐阅读
- java - 不能在 Java 中模拟最终类
- jenkins - Jenkins ClearCase UCM Plugin Failing While Rebasing
- powerbi - 当 PBI 数据集在 Power Automate 中完成刷新时如何发送通知?
- python - ImportError:没有名为 werkzeug.utils 的模块
- node.js - 卡在从 AWS S3 检索图像
- c++ - 如何理解“包含省略号的抽象声明符只能用于参数声明”
- json - 是否有用于过滤 json 数据的 JsonPatch 模拟?
- machine-learning - 理解稀疏自动编码器背后的逻辑
- java - 打开的游标过多
- api - 将路径参数与查询参数混合以获取静态请求?