Python-如何遍历数据框以追加每一行

时间:2020-06-16 00:01:07

标签: python pandas

关于如何在保持相同输出的同时追加数据帧的快速问题。示例代码如下。

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':{'Trally':100,'Incredible':200,'Text':500}}

1 个答案:

答案 0 :(得分:1)

如果要在适当位置修改数据框;

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