数据帧的列操作和行操作
(1)列选择
•
选择一列:
df[列索引]
•
选择离散多列:
df[[列索引数组]]
•
选择连续多列:
df[df.columns[start:end:step]]
(2)列添加
df[新列索引]= 新列值
注意:
•
若新列值未指定index,则从第0行开始往下添加新值;
•
若指定index,则按照index添加新值;
•
若添加的是series列,当值不足会自动添加NaN;
•
若添加的是列表、元组,当值不足会报错
(3)列修改
df[原列索引] = 新值
注意事项与列添加一致
(4)列删除
•
列删除指令,在原数据帧上删除指定的列,无返回值
del df[列索引]
•
列删除函数,在原数据帧上删除指定列,并返回被删除的列
df.pop(列索引)
•
列删除函数,默认在副本上删除指定列,并返回删除列之后的副本
df.drop(columns=列索引)
3.4.2 行操作
(1)行选择
•
使用行索引选择行
df.loc[行索引]、 df.loc[行索引列表]、df.loc[行索引切片]
•
使用行序号(0~n-1)选择行
df.iloc[行序号] 、 df.iloc[行序号列表]、df.iloc[行序号切片]
•
使用行索引和行序号切片选择行
df[行索引切片]、 df[行序号切片]
(2)行添加
df.append(other, ignore_index=False, verify_integrity=False, sort=False)
•
other :指定要添加的数据,DataFrame 或 Series 对象,或这些对象的列表
ignore_index :如果为 True, 则重新进行0~n-1索引
•
verify_integrity :如果为 True ,则遇到重复索引内容时报错
•
sort :如果为 True,则当 df 和 other 的列未对齐时,按other列进行排序对齐
3.4.3 行列联合操作
可以先选行再选列,也可以先选列再选行。
常用的方式如下两例,利用iloc或loc选行再选列
2. rename函数
rename()方法实现
重命名
行索引或列索引(副本),通常使用原索引与新索
引(原列名与新列名)组成的字典作为参数。
DataFrame.rename(mapper=None, index=None, columns=None, axis=None,
copy=True, inplace=False, level=None, errors=‘ignore’)
3.5.2 重新设置索引
1. set_index方法
将列数据设置为行索引:
DataFrame.set_index(keys, drop=True, append=False, inplace=False,
verify_integrity=False)
•
keys:
列索引
或
列索引列表
,表示需要设置为索引的列。
•
drop:默认为True,删除用作新索引的列。
•
append:默认为False,是否将列附加到现有索引。
•
inplace:默认为False,适当修改DataFrame(不要创建新对象)。
•
verify_integrity:默认为false,检查新索引的副本。
1. 迭代DataFrame的列
(1)DataFrame的数据本身就是
多列构成
的,迭代DataFrame的列可直接
用
foreach
循坏。
(2)
items()
返回(key,value)对,将每个列名作为键,将列数据的Series对
象作为值。
3.6.3 迭代
2. 迭代DataFrame的行
遍历DataFrame的行可以使用以下函数。
(1)iterrows()
将行迭代为(索引,系列)对,产生每个行索引值以及包含每行数据的序列。
(2)itertuples()
以namedtuples的形式迭代行,其中的值是行的数据。