有一个从 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 数组和列表、可调用对象或可能是字典。
关于你的第二个问题,c
是casts
的别名,是的,但是算术运算会导致返回一个新的系列。除非您重新分配,否则不会对原始内容进行任何修改。
关于python - Pandas 原始数据框已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53904560/