10分钟
[ ] 操作符2
6. 对于DataFrame
的赋值与列删除:
- 将列表或者数组赋值给某个列时,其长度必须跟
DataFrame
的行数匹配。 - 将标量赋值给某个列时,会将标量扩充
- 将
Series
赋值给某个列时,会精确匹配DataFrame
的索引。如果DataFrame
中某个label
在Series
中找不到,则赋值NaN
(空位都将被填上缺失值) - 为不存在的列赋值会创建出一个新列(必须用字典的形式,不能用属性赋值的形式)
- 关键字
del
用于删除列(必须用字典的形式,不能用属性赋值的形式)
7. 对于Series
的赋值与删除:
- 对于单个索引或者切片索引,要求右侧数值的长度与左侧相等
- 为不存在的
label
赋值会创建出一个新行(必须用字典的形式,不能用属性赋值的形式) - 关键字
del
用于删除行(必须用字典的形式,不能用属性赋值的形式)
8. 如果Series/DataFrame
的索引有重复label
,则数据的选取行为将有所不同:
- 如果索引对应多个
label
,则Series
返回一个Sereis
,DataFrame
返回一个DataFrame
- 如果索引对应单个
label
,则Series
返回一个标量值,DataFrame
返回一个Series
你可以通过Index.is_unique
属性得知索引是否有重复的。
- 对于
[]
、字典索引、属性索引或者.loc/.ix
存取器,结论如上所述 - 对于
.at
存取器:如果索引对应单个label
,索引结果正常。如果索引对应多个label
,则Series
返回一个一维ndarray
;DataFrame
则抛出异常。
9. 对于Series/DataFrame
,它们可以使用ndarray
的接口。因此可以通过ndarray
的索引规则来索引它们。
df=pd.DataFrame(...)
df[:,0] #使用了 ndarray 的索引方式
学员评价