Python Pandas 对列/行进行选择,增加,删除操作

  • Post category:Python

针对“PythonPandas对列/行进行选择,增加,删除操作”的操作,以下是完整的攻略。

选择列

在Pandas中,选择一列通常是使用以下方式:

df[column_name]

其中,df表示数据框,column_name表示你所需要选择的列名。如果你要选择多列,则需要使用如下的方式:

df[[column_name1, column_name2, ...]]

这里使用了Python的列表表示法,其中列表的每一项均为所需要选择的列。示例如下:

import pandas as pd

# 创建数据框
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 选择单列
name = df['name']

# 选择多列
name_age = df[['name', 'age']]

选择行

选择行通常需要用到.loc[].iloc[]方法。其中,.loc[]用于标签索引,.iloc[]用于位置索引。具体示例如下:

import pandas as pd

# 创建数据框
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 选择单行(标签索引)
row1 = df.loc[0]

# 选择多行(标签索引)
row1_2 = df.loc[[0,1]]

# 选择单行(位置索引)
row1_pos = df.iloc[0]

# 选择多行(位置索引)
row1_2_pos = df.iloc[[0,1]]

# 根据条件选择行
age_above_30 = df[df['age']>30]

增加列

使用Pandas可以很容易地增加一列,即:

df[column_name] = values

其中,values可以是列表、数组或Series对象。示例如下:

import pandas as pd

# 创建数据框
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 增加一列
income = [5000, 8000, 10000, 12000]
df['income'] = income

增加行

Pandas可以通过append()方法实现增加一行。不过需要特别注意的是,直接使用append()方法会返回一个新的数据框,而不是原数据框的改变。示例如下:

import pandas as pd

# 创建数据框
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 增加一行
new_row = {'name': 'Eva', 'age': 28, 'gender': 'F'}
df = df.append(new_row, ignore_index=True)

删除列

使用Pandas可以很容易地删除一列,即:

df.drop(column_name, axis=1, inplace=True)

其中,column_name表示需要删除的列名,axis=1表示删除列,inplace=True表示直接在原数据框上进行操作。示例如下:

import pandas as pd

# 创建数据框
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 删除一列
df.drop('gender', axis=1, inplace=True)

删除行

Pandas可以通过drop()方法实现删除一行。同样需要特别注意,直接使用drop()方法会返回一个修改后的数据框,而不是直接在原数据框上进行操作。示例如下:

import pandas as pd

# 创建数据框
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 删除一行
df_new = df.drop(0)

希望以上的操作能够对你有所帮助。