Python Pandas DataFrame取列方式详解

更新时间:2024-05-19 14:00:56   人气:8185
在Python数据分析领域,Pandas库无疑是一个极其强大的工具。其中的DataFrame对象是处理表格型数据的核心结构之一,它的灵活性和高效性深受广大开发者喜爱。本文将详细解析如何使用Pandas DataFrame进行灵活且高效的列选取操作。

一、基础列选择

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中取列的操作多种多样,既包括简单的按名字直接调用,也有利用复杂条件及索引来精确匹配所需的数据子集等进阶技巧。熟练掌握这些方法能极大地提升我们的编程效率以及数据分析能力。