pandas向 DataFrame 中添加列

pandas向 DataFrame 中添加列

参考:pandas append column to dataframe

在数据分析和数据处理中,pandas 是 Python 中最常用的库之一。它提供了大量的功能来操作和分析数据。本文将详细介绍如何使用 pandas 库在 DataFrame 中添加列,这是在数据处理过程中非常常见的需求。我们将通过多个示例代码来展示不同的方法和技巧,帮助你有效地向 DataFrame 中添加列。

1. 使用 assign 方法添加列

assign 方法是向 DataFrame 添加新列的一种便捷方式。它不会修改原始 DataFrame,而是返回一个新的 DataFrame。

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': ['pandasdataframe.com' for _ in range(5)]
})
new_df = df.assign(C=lambda x: x['A'] * 2)
print(new_df)

Output:

pandas向 DataFrame 中添加列

2. 直接使用列索引添加列

你也可以直接使用列索引来添加新列。如果列不存在,它将被创建。

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': ['pandasdataframe.com' for _ in range(5)]
})
df['C'] = df['A'] + 10
print(df)

Output:

pandas向 DataFrame 中添加列

3. 使用 insert 方法添加列

使用 insert 方法可以在 DataFrame 中指定的位置插入列。这个方法会修改原始 DataFrame。

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': ['pandasdataframe.com' for _ in range(5)]
})
df.insert(1, 'C', df['A'] * 3)
print(df)

Output:

pandas向 DataFrame 中添加列

4. 使用 concat 函数添加列

concat 函数可以用来在 DataFrame 的列方向上添加数据。

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': ['pandasdataframe.com' for _ in range(5)]
})
new_col = pd.Series(['new' + str(i) for i in range(5)], name='C')
df = pd.concat([df, new_col], axis=1)
print(df)

Output:

pandas向 DataFrame 中添加列

5. 使用 merge 方法添加列

merge 方法通常用于根据一个或多个键将不同的 DataFrame 合并在一起,但也可以用来添加列。

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': ['pandasdataframe.com' for _ in range(5)]
})
new_col = pd.DataFrame({
    'A': range(1, 6),
    'C': ['new' + str(i) for i in range(5)]
})
df = pd.merge(df, new_col, on='A')
print(df)

Output:

pandas向 DataFrame 中添加列

6. 使用 join 方法添加列

join 方法是另一种在 DataFrame 中添加列的方法,它基于索引来合并数据。

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': ['pandasdataframe.com' for _ in range(5)]
})
new_col = pd.DataFrame({
    'C': ['new' + str(i) for i in range(5)]
}, index=[0, 1, 2, 3, 4])
df = df.join(new_col)
print(df)

Output:

pandas向 DataFrame 中添加列

7. 使用 update 方法添加列

update 方法可以用来更新 DataFrame 的列,如果列不存在,则会添加新列。

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': ['pandasdataframe.com' for _ in range(5)]
})
new_col = pd.DataFrame({
    'C': ['update' + str(i) for i in range(5)]
})
df.update(new_col)
print(df)

Output:

pandas向 DataFrame 中添加列

8. 使用 eval 方法动态添加列

eval 方法允许你使用字符串表达式来动态添加列。

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': ['pandasdataframe.com' for _ in range(5)]
})
df.eval('C = A + 20', inplace=True)
print(df)

Output:

pandas向 DataFrame 中添加列

9. 使用 apply 方法添加列

apply 方法可以对 DataFrame 的行或列应用一个函数,常用于添加新列。

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': ['pandasdataframe.com' for _ in range(5)]
})
df['C'] = df.apply(lambda row: row['A'] * 2, axis=1)
print(df)

Output:

pandas向 DataFrame 中添加列

10. 使用 map 方法添加列

map 方法可以对 Series 的每个元素应用一个函数或字典映射,常用于添加新列。

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': ['pandasdataframe.com' for _ in range(5)]
})
df['C'] = df['A'].map(lambda x: x * 3)
print(df)

Output:

pandas向 DataFrame 中添加列

以上是使用 pandas 在 DataFrame 中添加列的十种不同方法。每种方法都有其适用场景和优缺点,选择合适的方法可以使数据处理更加高效和灵活。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程