在讲解如何对一个Dataframe
进行增
操作前,我们首先创造一个Dataframe
(代码运行环境:jupyter—python3.8):
import pandas as pd
import numpy
# 创建一个Dataframe
data = pd.DataFrame(
np.arange(15).reshape(5, 3), index=[1, 2, 3, 4, 5], columns=["a", "b", "c"]
)
data
一、增加一列
方法1:列索引法
我们只需要通过列索引即可“无中生有”:
data["d"] = 9 # data["d"] = [1,2,3,4,5]
data
前:后:
可以看到,通过对不存在的列索引d
进行赋值,我们成功添加了新列,这里系统默认自动对每一行都添加了9
方法2:insert()方法
data.insert(1, "e", [1, 2, 3, 4, 5])
data
原来的数据:使用insert()方法后的:
上述代码实现的功能是:在原始数据的第2
列前添加一列,其列索引起名叫做e
,其列值为:1,2,3,4,5
,假如我们现在要在第1
列前添加一列f
,其值为:9,9,9,9,9
,代码可改为:
data.insert(0, "f", 9)
data
前:后:
二、增加一行
方法1:标签索引loc法
data.loc["c"] = 1 # data.loc["c"] = [1,2,3,4,5]
data
前:后:
可以看到,我们通过loc
方法添加了一个行索引为c
的数据
方法2:append方法
dic = {"f": 1, "a": 2, "b": 3, "c": 4, "d": 5}
data = data.append(dic, ignore_index=True)
data
前:后:
我们首先定义了一个字典dic
,其key
就是Dataframe
的列索引,再调用append
方法添加这行数据,但是有三点需要着重提一下:
ignore_index=True
这句话必须加上,因为dic
本身并没有体现行索引append
方法会返回一个新的Dataframe
,但并不会影响原先的Dataframe
- 添加
ignore_index=True
语句后,返回的新的Dataframe
的行索引会默认自动重新排列
笔者更推荐大家使用方法1。