pandas增加字典列表方法
1. 引言
Pandas 是一个开源的数据分析和数据操作工具,它提供了快速、灵活和富有表现力的数据结构,特别是 DataFrame。在数据分析和处理中,有时我们需要将一些数据添加到 DataFrame 中。本文将详细介绍如何使用 Pandas 中的字典列表方法来增加数据到 DataFrame。
2. 创建 DataFrame
在开始之前,我们首先需要创建一个 DataFrame,以便后续操作。下面是创建一个包含姓名、年龄和城市的 DataFrame 的示例代码:
import pandas as pd
data = {'姓名': ['张三', '李四', '王五'],
'年龄': [21, 25, 30],
'城市': ['北京', '上海', '广州']}
df = pd.DataFrame(data)
print(df)
Output:
姓名 年龄 城市
0 张三 21 北京
1 李四 25 上海
2 王五 30 广州
3. 增加单行数据
3.1 使用 loc 给 DataFrame 增加数据
Pandas 中的 loc 方法可以用来增加单行或多行数据到 DataFrame 中,同时可以指定要添加数据的列标签。下面是使用 loc 方法给 DataFrame 增加一行数据的示例代码:
new_row = {'姓名': '赵六', '年龄': 28, '城市': '深圳'}
df.loc[len(df)] = new_row
print(df)
Output:
姓名 年龄 城市
0 张三 21 北京
1 李四 25 上海
2 王五 30 广州
3 赵六 28 深圳
在上述代码中,我们首先创建了一个字典 new_row,其中包含了要增加的数据。然后使用 loc 方法,通过指定 len(df) 来选择新的行下标,并将 new_row 赋值给行索引为 len(df) 的位置。
3.2 使用列表给 DataFrame 增加数据
除了使用 loc 方法,我们还可以将要添加的数据作为一个列表传递给 DataFrame 的 append 方法。下面是使用 append 方法给 DataFrame 增加一行数据的示例代码:
new_row = ['赵六', 28, '深圳']
df = df.append(pd.Series(new_row, index=df.columns), ignore_index=True)
print(df)
Output:
姓名 年龄 城市
0 张三 21 北京
1 李四 25 上海
2 王五 30 广州
3 赵六 28 深圳
在上述代码中,我们创建了一个列表 new_row,其中包含了要增加的数据。然后使用 append 方法将 new_row 添加到 DataFrame 中,并通过传递参数 ignore_index=True 来确保新添加的数据重新排序并分配新的整数索引。
4. 增加多行数据
当我们需要一次性增加多行数据到 DataFrame 中时,我们可以创建一个包含多个字典的列表,然后将其添加到 DataFrame 中。下面是一个示例代码:
new_rows = [{'姓名': '赵六', '年龄': 28, '城市': '深圳'},
{'姓名': '钱七', '年龄': 32, '城市': '天津'},
{'姓名': '孙八', '年龄': 35, '城市': '重庆'}]
df = df.append(new_rows, ignore_index=True)
print(df)
Output:
姓名 年龄 城市
0 张三 21 北京
1 李四 25 上海
2 王五 30 广州
3 赵六 28 深圳
4 钱七 32 天津
5 孙八 35 重庆
在上述代码中,我们创建了一个包含多个字典的列表 new_rows,其中每个字典表示一行要增加的数据。然后使用 append 方法将 new_rows 添加到 DataFrame 中,并通过传递参数 ignore_index=True 来确保新添加的数据重新排序并分配新的整数索引。
5. 增加单个列数据
有时,我们需要在现有 DataFrame 上增加一个新的列,以补充已有数据的维度。下面是一个示例代码,通过字典的键作为列标签,字典的值作为该列的数据来增加新的列:
new_column = {'性别': ['男', '女', '男', '女', '男', '男']}
df = pd.concat([df, pd.DataFrame(new_column)], axis=1)
print(df)
Output:
姓名 年龄 城市 性别
0 张三 21 北京 男
1 李四 25 上海 女
2 王五 30 广州 男
3 赵六 28 深圳 女
4 钱七 32 天津 男
5 孙八 35 重庆 男
在上述代码中,我们首先创建了一个字典 new_column,其中键为列标签,值为该列的数据。然后使用 concat 方法将新列与原 DataFrame 在列方向上合并,并通过指定参数 axis=1 来进行列合并。
6. 增加多个列数据
在某些情况下,我们需要一次性增加多个新的列到 DataFrame 中。下面是一个示例代码,通过多个字典来增加多个列:
new_columns = {'性别': ['男', '女', '男', '女', '男', '男'],
'学历': ['本科', '硕士', '本科', '硕士', '本科', '本科']}
df = pd.concat([df, pd.DataFrame(new_columns)], axis=1)
print(df)
Output:
姓名 年龄 城市 性别 学历
0 张三 21 北京 男 本科
1 李四 25 上海 女 硕士
2 王五 30 广州 男 本科
3 赵六 28 深圳 女 硕士
4 钱七 32 天津 男 本科
5 孙八 35 重庆 男 本科