循环遍历dataframe并给这一列赋值
时间: 2023-07-10 13:14:03 浏览: 67
要循环遍历 DataFrame 并给某一列赋值,你可以使用 DataFrame 的 `iterrows()` 方法来遍历每一行,然后使用 `.at` 或 `.loc` 方法来给某一列赋值。
例如,假设你有一个 DataFrame `df`,其中有一列叫做 `score`,你想要给这一列的每个元素都加上 1:
```python
for index, row in df.iterrows():
df.at[index, 'score'] = row['score'] + 1
```
这里的 `iterrows()` 方法返回一个迭代器,每次迭代返回一个元组 `(index, row)`,其中 `index` 是行的索引,`row` 是一个 Series,包含该行的所有值。然后我们使用 `.at` 方法来访问指定行和列的元素,给其赋新值。
另外,你也可以使用 `.loc` 方法:
```python
for index, row in df.iterrows():
df.loc[index, 'score'] = row['score'] + 1
```
这个方法与 `.at` 的效果相同,但是它可以同时访问和修改多个列,因此更加灵活。
相关问题
如何循环遍历dataframe里的数据
可以使用 for 循环结合 iterrows() 方法来遍历 DataFrame 中的每一行数据,例如:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
for index, row in df.iterrows():
print(row['A'], row['B'])
```
此外,还可以使用 apply() 方法对每一行数据应用一个函数,例如:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
def my_func(row):
return row['A'] + row['B']
df['C'] = df.apply(my_func, axis=1)
```
这里的 my_func 函数会对每一行数据进行处理,然后返回一个值,最后将处理结果赋值给新的一列 C。其中,axis=1 表示 apply() 方法在行上进行操作。
for循环给dataframe赋值
可以使用 `iterrows()` 方法遍历 DataFrame 中的每一行,然后通过索引或标签给每个单元格赋值。例如,假设有一个 DataFrame `df`,它有三列 `col1`、`col2` 和 `col3`,可以使用以下代码使用 for 循环为其赋值:
```python
for index, row in df.iterrows():
row['col1'] = some_value
row['col2'] = some_other_value
df.at[index, 'col3'] = yet_another_value
```
在这个例子中,`iterrows()` 方法返回一个元组 `(index, row)`,其中 `index` 是行索引,`row` 是包含该行数据的 Series 对象。然后可以使用 `row` 对象的标签或索引来对单元格进行赋值,也可以使用 `at[]` 方法通过行索引和列标签来对单元格进行赋值。