DataFrame.values 中的更改是否总是会修改数据框中的值

pandas

1个回答

写回答

YaDang1

2025-07-02 12:20

+ 关注

Python
Python

DataFrame.values是否总是会修改数据框中的值?

Pandas
Pandas

PythonPandas库中,DataFrame是一种二维数据结构,类似于excel中的表格。DataFrame.values属性是用于返回DataFrame中的数据的numpy数组。那么,当我们对DataFrame.values进行更改时,是否会直接修改数据框中的值呢?下面我们将对此进行探讨。

案例代码:

Python

import Pandas as pd

# 创建一个DataFrame

data = {'Name': ['Tom', 'Nick', 'John', 'Sam'],

'Age': [25, 28, 30, 35],

'City': ['New York', 'Paris', 'London', 'Tokyo']}

df = pd.DataFrame(data)

# 打印原始数据框

print("原始数据框:")

print(df)

# 修改DataFrame.values的值

df.values[0][0] = 'Jerry'

# 打印修改后的数据框

print("修改后的数据框:")

print(df)

DataFrame.values是否直接修改数据框中的值?

根据上面的案例代码,我们可以看到,当我们修改DataFrame.values的值时,原始的数据框中的值也被修改了。这是因为DataFrame.values返回的是一个对原始数据框中数据的引用,而不是数据的副本。因此,对DataFrame.values的任何修改都会直接反映在数据框中。

如何避免直接修改数据框中的值?

如果我们不希望直接修改数据框中的值,可以使用DataFrame.copy方法创建数据框的副本,然后对副本进行操作。这样,即使对副本的修改,也不会影响原始数据框的值。

案例代码:

Python

import Pandas as pd

# 创建一个DataFrame

data = {'Name': ['Tom', 'Nick', 'John', 'Sam'],

'Age': [25, 28, 30, 35],

'City': ['New York', 'Paris', 'London', 'Tokyo']}

df = pd.DataFrame(data)

# 打印原始数据框

print("原始数据框:")

print(df)

# 创建数据框的副本

df_copy = df.copy()

# 修改副本的值

df_copy.values[0][0] = 'Jerry'

# 打印修改后的副本

print("修改后的副本:")

print(df_copy)

# 打印原始数据框

print("原始数据框:")

print(df)

PythonPandas库中,对DataFrame.values进行的修改会直接反映在原始数据框中。为了避免直接修改数据框中的值,可以使用DataFrame.copy方法创建数据框的副本,然后对副本进行操作。

希望本文对你理解DataFrame.values是否总是会修改数据框中的值有所帮助!

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号