一、基础列选择
1. **通过列名获取单个或多个列**
在一个已有的DataFrame中,我们可以通过列名称直接提取出所需的列:
python
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3],
'B': ['a', 'b', 'c'],
'C': [4., 5., 6.]})
# 获取名为'A'的一列
column_A = df['A']
# 同时获取多列(传入列表)
multiple_columns = df[['A', 'B']]
2. **属性访问法**
如果列的名字不包含特殊字符并且与Python关键字不同,并且没有重名的情况出现,则可以直接以属性的方式引用该列:
python
single_column_via_attribute = df.A
二、高级列索引方法
1. **Label-based indexing**: 使用loc 和 iloc 方法可以更精细地控制对行和列的选择。
- `df.loc[:, 'column_name']`:基于标签定位,用于检索指定列,冒号":"表示所有行;
- 若需要同时选取出特定范围内的连续多列,可采用:
python
specific_range_of_cols = df.iloc[: ,0:2]
这里将会返回从第一列到第二列的所有数据。
2. **布尔数组筛选列** :我们可以创建一个布尔向量并用它来过滤DataFrame中的列:
python
boolean_mask = df.columns.isin(['A', 'B'])
selected_with_boolean_mask = df[df.columns[boolean_mask]]
三、动态生成新列或者修改已有列
- 新增列可通过简单赋值实现,只要新的列名不在原DataFrame内即可:
python
df['D'] = df['A'] + df['B'].astype('category').cat.codes
这里我们在原始DF基础上新增了一列'D',其内容为'A'列数值加上'B'列转换成类别后的编码值。
总结来说,在Pandas DataFrame中取列的操作多种多样,既包括简单的按名字直接调用,也有利用复杂条件及索引来精确匹配所需的数据子集等进阶技巧。熟练掌握这些方法能极大地提升我们的编程效率以及数据分析能力。