Python创建列

在数据分析和处理中,经常需要对数据进行加工和转换。其中一个常见的操作是创建一个新的列,根据已有的列计算得到。Python提供了多种方法来创建列,本文将介绍其中几种常用的方法,并通过代码示例进行说明。

1. 使用pandas库创建列

[pandas](

import pandas as pd

# 创建一个DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Sam'],
        'Age': [20, 25, 30, 35]}
df = pd.DataFrame(data)

# 使用assign()方法创建新的列
df = df.assign(Height=[175, 180, 185, 190])

print(df)

输出结果:

Name Age Height
Tom 20 175
Nick 25 180
John 30 185
Sam 35 190

在上面的代码中,我们首先创建了一个包含NameAge列的DataFrame。然后使用assign()方法创建了一个名为Height的新列,并指定了该列的值。

2. 使用numpy库创建列

[numpy](

import numpy as np
import pandas as pd

# 创建一个DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Sam'],
        'Age': [20, 25, 30, 35]}
df = pd.DataFrame(data)

# 使用numpy函数创建新的列
df['Height'] = np.random.randint(150, 200, size=len(df))

print(df)

输出结果:

Name Age Height
Tom 20 192
Nick 25 169
John 30 168
Sam 35 193

在上述示例中,我们使用np.random.randint()函数生成了一组随机整数,并将其赋值给Height列。

3. 使用列表推导式创建列

列表推导式是一种简洁的方式来创建列表。在Python中,我们也可以使用列表推导式来创建新的列。

import pandas as pd

# 创建一个DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Sam'],
        'Age': [20, 25, 30, 35]}
df = pd.DataFrame(data)

# 使用列表推导式创建新的列
df['Height'] = [175, 180, 185, 190]

print(df)

输出结果:

Name Age Height
Tom 20 175
Nick 25 180
John 30 185
Sam 35 190

在上述代码中,我们将一个包含新列的列表赋值给了Height列。

4. 使用apply()方法创建列

在pandas中,可以使用apply()方法对DataFrame的每一行或每一列应用一个函数。通过定义一个函数,我们可以根据已有的列计算得到新的列。

import pandas as pd

# 创建一个DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Sam'],
        'Age': [20, 25, 30, 35]}
df = pd.DataFrame(data)

# 创建一个函数来计算新的列
def calculate_height(row):
    if row['Age'] <= 25:
        return 170
    else:
        return 180

# 使用apply()方法创建新的列
df['Height'] = df.apply(calculate_height, axis=1)

print(df)

输出结果:

Name Age Height
Tom 20 170
Nick 25 170
John 30 180
Sam 35 180

在上述示例中,我们定义了一个函数calculate_height(),根据Age列的值来计算新的Height