python - Pandas 原始数据框已更改

标签 python pandas pandas-groupby

有一个从 Pandas Guide 示例中的 csv 创建的数据框: 例如:

 cast=pd.read_csv('cast.csv', index_col=none, encoding='utf-8')
cast.head()

title year
0 Macbeth 1913
1 Macbeth 1997
2 Macbeth 1998
3 Macbeth 2006

然后我们这样做

 c = casts
 c.groupby( [c['year']//10*10, 'type'] ).size().head(8)

因为c数据框是可变对象,所以我们通过这样做修改了年份列 c['year']//10*10,然后我们将c['year']//10*10作为pandas系列对象进行分组

问题1: 由于 c['year']//10*10 是系列对象,我们可以使用列名称或系列数据作为 groupby 聚合属性,对吗?

问题2: 当我们修改c['year']//10*10时,我们实际上修改了c['year']列值,也就是说c数据框被修改了。 Actor 数据框不是也修改了吗?因为c只是cast的别名?

最佳答案

您有两个问题。

关于你的第一个问题,groupby接受列名、系列、NumPy 数组和列表、可调用对象或可能是字典。

关于你的第二个问题,ccasts的别名,是的,但是算术运算会导致返回一个新的系列。除非您重新分配,否则不会对原始内容进行任何修改。

关于python - Pandas 原始数据框已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53904560/

相关文章:

python - 我碰巧发现了这段代码 :"With for w in words:, 该示例将尝试创建一个无限列表

python - PyTorch 的张量是如何实现的?

python - 如何在对另一列进行排序的同时对一列进行分组?

python - Pandas :使用groupby计算重复行数

python - 如何使用循环将嵌套列表连接到一个新的嵌套列表中?

python-3.x - Pandas DataFrame.empty() 给出 TypeError : 'bool' object is not callable

python - 如何将pandas中的if/else转换为np.where

python - 类型错误 : argument of type 'int' is not iterable

python - 计算具有 Nan 值的最频繁组

python - 将数据帧转换为 numpy 数组时如何保持数据类型?