如何扩展Pandas DataFrame的列

  • Post category:Python

要扩展 Pandas DataFrame 的列,常用的方法是使用 df['new_col'] = ...df.insert() 函数。

使用 df[‘new_col’]

df['new_col'] 可以用于增加或覆盖列。以下是一些示例:

增加列

可以使用直接赋值的方式添加列,例如:

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)

# 添加新列
df['gender'] = ['F', 'M', 'M']
print(df)

输出:

       name  age
0     Alice   25
1       Bob   30
2  Charlie   35
       name  age gender
0     Alice   25      F
1       Bob   30      M
2  Charlie   35      M

也可以利用 Series 累加生成新列,例如:

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)

# 累加生成新列
df['age_next_year'] = df['age'] + 1
print(df)

输出:

       name  age
0     Alice   25
1       Bob   30
2  Charlie   35
       name  age  age_next_year
0     Alice   25             26
1       Bob   30             31
2  Charlie   35             36

覆盖列

如果要覆盖已有列,可以使用类似增加列的方式,例如:

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)

# 覆盖列
df['age'] = [26, 31, 36]
print(df)

输出:

       name  age
0     Alice   25
1       Bob   30
2  Charlie   35
       name  age
0     Alice   26
1       Bob   31
2  Charlie   36

使用 df.insert()

使用 df.insert() 函数可以在指定位置插入新的列。以下是一些示例:

插入列

使用 df.insert() 函数插入新列,例如:

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)

# 在第二列(index=1)插入新列
df.insert(1, 'gender', ['F', 'M', 'M'])
print(df)

输出:

       name  age
0     Alice   25
1       Bob   30
2  Charlie   35
       name gender  age
0     Alice      F   25
1       Bob      M   30
2  Charlie      M   35

覆盖列

使用 df.insert() 函数覆盖已有列,例如:

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)

# 在第二列(index=1)覆盖已有列
df.insert(1, 'age', [26, 31, 36])
print(df)

输出:

       name  age
0     Alice   25
1       Bob   30
2  Charlie   35
       name  age
0     Alice   26
1       Bob   31
2  Charlie   36

注意:插入或覆盖列时,新列的长度必须与 DataFrame 的行数一致。

以上是如何扩展 Pandas DataFrame 的列的完整攻略,希望可以帮助到你。