处理Pandas数据框架中的行和列问题

  • Post category:Python

处理Pandas数据框架中的行和列问题,一般包括以下几个方面:

  1. 选取指定的行和列
  2. 增加和删除行和列
  3. 重命名行和列
  4. 修改数据框架中的数据

下面我们将分别对这几个问题做出详细的解释,并提供相关的实例。

1. 选取指定的行和列

在选取行和列的时候,我们需要使用如下的语法:

df.loc[index, column]

其中,index代表行,column代表列。下面是一些示例:

1.1 选取指定的列

选取列有两种方式:通过列名或列索引。例如:

import pandas as pd

# 创建数据框架
df = pd.DataFrame({'name': ['Alex', 'Bob', 'Charlie'],
                   'age': [25, 30, 35],
                   'sex': ['M', 'M', 'F']})

# 选取单列
print(df['name'])
print(df.age)

# 选取多列
print(df[['name', 'age']])

上述代码会输出:

0        Alex
1         Bob
2     Charlie
Name: name, dtype: object
0    25
1    30
2    35
Name: age, dtype: int64
       name  age
0      Alex   25
1       Bob   30
2   Charlie   35

1.2 选取指定的行

选取行同样也有两种方式:通过行索引或者通过布尔型索引。例如:

# 选取单行
print(df.loc[0])

# 选取多行
print(df.loc[[0, 1]])

# 使用布尔型索引选取行
print(df[df['age'] >= 30])

上述代码会输出:

name    Alex
age       25
sex        M
Name: 0, dtype: object
    name  age sex
0   Alex   25   M
1    Bob   30   M
       name  age sex
1       Bob   30   M
2   Charlie   35   F

1.3 选取指定的行和列

如果要选取指定的行和列,既可以混用布尔型索引和列名/列索引,也可以直接使用loc。例如:

# 指定行和列
print(df.loc[[0, 2], ['name', 'age']])

# 通过布尔型索引同时选取行和列
print(df[df['age'] >= 30][['name', 'age']])

上述代码会输出:

      name  age
0     Alex   25
2  Charlie   35
       name  age
1       Bob   30
2   Charlie   35

2. 增加和删除行和列

增加和删除行和列都是使用df.drop()df.insert()方法完成的。下面是一些示例:

2.1 删除行和列

# 删除指定行
df.drop(1, axis=0, inplace=True)

# 删除指定列
df.drop('sex', axis=1, inplace=True)

上述代码中,inplace=True表示直接在原数据框架上进行操作。

2.2 增加行和列

# 增加一列age2
df.insert(2, 'age2', [30, 35, 40])

# 增加一行数据
new_data = {'name': 'Dan', 'age': 25, 'age2': 30}
df = df.append(new_data, ignore_index=True)

上述代码中,df.insert(2, 'age2', [30, 35, 40])表示在第3列(索引为2)增加了一列名为age2,数据分别为303540df.append(new_data, ignore_index=True)表示在数据框架最后增加了一行数据,ignore_index=True表示重新为索引编号。

3. 重命名行和列

重命名行和列的方法分别为df.rename()df.columns = new_columns。例如:

# 重命名列
df.rename(columns={'name': 'Name', 'age': 'Age1', 'age2': 'Age2'}, inplace=True)

# 重命名行
df.rename(index={0: 'One', 1: 'Two', 2: 'Three', 3:'Four'}, inplace=True)

上述代码中,inplace=True表示直接在原数据框架上进行操作。

4. 修改数据框架中的数据

修改数据框架中的数据的方法比较简单,只需要直接在df中指定行和列,再赋上新的值即可。例如:

# 修改第一行第二列数据
df.loc[0, 'Age1'] = 26

# 修改第三行所有列数据
df.loc[2] = ['Charlie2', 36, 41]

上述代码中,df.loc[0, 'Age1'] = 26表示修改了第一行第二列的数据为26df.loc[2] = ['Charlie2', 36, 41]表示修改了第三行所有列的数据为['Charlie2', 36, 41]

希望这个攻略对您有所帮助。