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 |
在上面的代码中,我们首先创建了一个包含Name
和Age
列的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
列