关于如何在保持相同输出的同时追加数据帧的快速问题。示例代码如下。
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}}
答案 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