python pandas库中DataFrame对行和列的操作实例讲解

  • Post category:Python

Python Pandas库中DataFrame对行和列的操作实例讲解

Pandas是Python中一个很常用的数据分析库,其中的DataFrame是一种十分重要的数据结构,提供了很多对行和列的操作方法。

创建DataFrame

我们可以使用Pandas中的DataFrame构造器来创建DataFrame:

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 35, 30, 20],
    'gender': ['female', 'male', 'male', 'male']
})

上述代码创建了一个由3列组成的DataFrame,每列对应一个键值对。

操作DataFrame的列

选择一个列

我们可以使用DataFrame中的列名来选择一个列,返回的类型是一个Series对象,可以进行各种操作。

# 选择一个列
name = df['name']
print(name)

选择多个列

我们可以使用列表来选择多个列

# 选择多个列
data = df[['name', 'age']]
print(data)

增加一个列

我们可以给DataFrame增加一个列

# 增加一个列
df['height'] = [165, 180, 175, 170]
print(df)

修改一个列

我们可以修改DataFrame中的某一列

# 修改一个列
df['gender'] = ['F', 'M', 'M', 'M']
print(df)

删除一个列

我们可以使用del关键字删除一个列

# 删除一个列
del df['gender']
print(df)

操作DataFrame的行

选择一个行

我们可以使用loc方法选择一个行,返回的类型是一个Series对象。

# 选择一个行
data = df.loc[1]
print(data)

选择多个行

我们可以使用切片来选择多个行,返回的类型是一个DataFrame对象。

# 选择多个行
data = df[1:3]
print(data)

增加一个行

我们可以使用append方法增加一个行,注意要保证行数据和列名一致。

# 增加一个行
new_data = pd.DataFrame({
    'name': ['Emily'],
    'age': [28],
    'height': [170]
})
df = df.append(new_data, ignore_index=True)
print(df)

修改一个行

由于DataFrame是不可变对象,对一个行的修改实际上是先删除这一行,再增加一行。

# 修改一个行
df.loc[1] = ['Bob', 36, 185]
print(df)

删除一个行

我们可以使用drop方法来删除一个行

# 删除一个行
df = df.drop(3)
print(df)

以上就是Pandas库中DataFrame对行和列的操作的详细讲解。

示例说明

示例1

在这个示例中,我们创建了一个DataFrame,然后对其列进行了操作,并打印了操作的结果。可以看到,我们选择了一个单独的列,并对其中的数据进行了一些操作。其中的输出结果是一个Series对象。

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 35, 30, 20],
    'gender': ['female', 'male', 'male', 'male']
})

# 选择一个列
name = df['name']
print(name)

输出:

0      Alice
1        Bob
2    Charlie
3      David
Name: name, dtype: object

示例2

在这个示例中,我们创建了一个DataFrame,然后对其行进行操作,并打印了操作的结果。可以看到,我们选择了一个区间的行,并对其中的数据进行了一些操作。其中的输出结果是一个DataFrame对象。

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 35, 30, 20],
    'gender': ['female', 'male', 'male', 'male']
})

# 选择多个行
data = df[1:3]
print(data)

输出:

      name  age gender
1      Bob   35   male
2  Charlie   30   male