我运行了以下Python代码,它创建了一个带有两个Series(a和b)的Pandas DataFrame ,然后尝试创建两个新的Series(c和d):
import pandas as pd
df = pd.DataFrame({'a':[1, 2, 3], 'b':[4, 5, 6]})
df['c'] = df.a + df.b
df.d = df.a + df.b
Run Code Online (Sandbox Code Playgroud)
我的理解是,如果Pandas系列是DataFrame的一部分,并且Series名称没有任何空格(并且不与现有属性或方法冲突),则可以作为DataFrame的属性访问Series.因此,我预计第3行会起作用(因为这就是你创建一个新的Pandas系列的方式),我预计第4行会失败(因为d在你执行那行代码之前,DataFrame 的属性不存在).
令我惊讶的是,第4行没有导致错误.相反,DataFrame现在包含三个系列:
>>> df
a b c
0 1 4 5
1 2 5 7
2 3 6 9
Run Code Online (Sandbox Code Playgroud)
还有一个新对象,df.d就是熊猫系列:
>>> df.d
0 5
1 7
2 9
dtype: int64
>>> type(df.d)
pandas.core.series.Series
Run Code Online (Sandbox Code Playgroud)
我的问题如下:
df.d现在"正常"熊猫系列所有的常规系列的功能? …