gpt4 book ai didi

python - 迭代更改 Pandas 数据框列中的每个单元格

转载 作者:行者123 更新时间:2023-11-30 23:10:01 25 4
gpt4 key购买 nike

我正在尝试更改 Pandas 数据框中每个单元格的值。期望 .loc 允许我识别具有范式 df.loc[row_index, column_name] = cell value 的单元格,我使用了以下循环:

table["field"] = 6 #placehodler value used only to create the column
for field, index in enumerate(table["field"]): table.loc[index,
"field"] = table.loc[index, "field_x"] if math.isnan(table.loc[index,
"field_y"]) else table.loc[index, "field_y"]

但是,我收到以下错误:KeyError:“标签 [6] 不在 [索引] 中”。按索引选择值的正确语法是什么?

最佳答案

您不应该使用enumerate来生成索引和列值,您应该使用iterrows

使用示例:

In [6]:
df = pd.DataFrame({'a':np.arange(5), 'b':np.random.randn(5)})
df

Out[6]:
a b
0 0 -0.579585
1 1 -0.582196
2 2 -0.367147
3 3 -0.363332
4 4 0.880826

In [9]:
for index, row in df.iterrows():
print('index: ', index)
print('row: ', row)

输出:

index:  0
row: a 0.000000
b -0.579585
Name: 0, dtype: float64
index: 1
row: a 1.000000
b -0.582196
Name: 1, dtype: float64
index: 2
row: a 2.000000
b -0.367147
Name: 2, dtype: float64
index: 3
row: a 3.000000
b -0.363332
Name: 3, dtype: float64
index: 4
row: a 4.000000
b 0.880826
Name: 4, dtype: float64

这将允许您使用df.loc[index]访问特定行,如果您需要可以使用上面row.index访问的列for循环

关于python - 迭代更改 Pandas 数据框列中的每个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30862526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com