📅  最后修改于: 2023-12-03 15:18:52.524000             🧑  作者: Mango
在数据科学和数据分析中,通常需要对数据进行子集。在pandas中,按列名对数据帧进行子集操作是一项常见任务。这个操作可以非常方便地获得你需要的数据子集并进行后续分析。
要选取单列,在方括号中指定列名即可:
import pandas as pd
# 创建一个数据帧
data = {'名字': ['Alice', 'Bob', 'Charlie'], '年龄': [25, 32, 18], '工资': [5000, 7000, 4500]}
df = pd.DataFrame(data)
# 按列名选择单列
age = df['年龄']
print(age)
# 输出结果
# 0 25
# 1 32
# 2 18
# Name: 年龄, dtype: int64
要选择多列,只需在方括号中传入列名列表即可:
import pandas as pd
# 创建一个数据帧
data = {'名字': ['Alice', 'Bob', 'Charlie'], '年龄': [25, 32, 18], '工资': [5000, 7000, 4500]}
df = pd.DataFrame(data)
# 按列名选择多列
sub_df = df[['名字', '工资']]
print(sub_df)
# 输出结果
# 名字 工资
# 0 Alice 5000
# 1 Bob 7000
# 2 Charlie 4500
在某些情况下,我们可能需要跨越多个列子集选择行。假设我们要选择所有年龄大于30岁且工资高于5000的人:
import pandas as pd
# 创建一个数据帧
data = {'名字': ['Alice', 'Bob', 'Charlie'], '年龄': [25, 32, 18], '工资': [5000, 7000, 4500]}
df = pd.DataFrame(data)
# 按列名子集选择行
sub_df = df[(df['年龄'] > 30) & (df['工资'] > 5000)]
print(sub_df)
# 输出结果
# 名字 年龄 工资
# 1 Bob 32 7000
在某些情况下,我们可能需要根据某些条件选择列。假设我们要选择所有年龄大于30岁的人的名字和年龄:
import pandas as pd
# 创建一个数据帧
data = {'名字': ['Alice', 'Bob', 'Charlie'], '年龄': [25, 32, 18], '工资': [5000, 7000, 4500]}
df = pd.DataFrame(data)
# 按条件选择列
sub_df = df.loc[df['年龄'] > 30, ['名字', '年龄']]
print(sub_df)
# 输出结果
# 名字 年龄
# 1 Bob 32
以上就是按列名对数据帧进行子集的操作。选取数据子集是数据分析的重要步骤,而pandas对这种操作提供了很好的支持,可以大大简化我们的工作流程。