pandas操作
- 1. 导入数据库
- 2. 修改行列名
- 2.1 修改列名
- 2.2 修改行名
- 3. 按条件筛选
- 3.1 根据条件筛选,提取所有信息
- 3.2 根据条件筛选,提取某列或者某几列
- 4. 按某行某列提取信息
- 4.1 获取信息
- 4.2 更改具体的值
- 5. 合并
- 5.1 单列并入大数据中(方法一)
- 5.2 多列并入大数据中
1. 导入数据库
# 定义空白的数据库,便于存储数据
df1 = []
df1 = pd.DataFrame(df1)
## 或者
df1= pd.DataFrame([])
# 数组全转为数据库内容,不设置首行
df2= [['a', 'b'], [1, 3], [2, 4]]
df2= pd.DataFrame(df2)
# 数组转为数据库内容,并第一行为列名
df3= [['a', 'b'], [1, 3], [2, 4]]
df3 = pd.DataFrame(df3[1:], columns=value[0])
# 数组转为数据库内容,并第一列为行名(设置这一步操作,必须要有列号,因此需在上基础上进行)
# set_index 内容为首行内 想让哪一列作为行号的名称
df4 = [['a', 'b'], [1, 3], [2, 4]]
df4 = pd.DataFrame(df4 [1:], columns=value[0]).set_index('b')
上面导入数组的结果如下:
df1 | df2 | df3 | df4 |
---|---|---|---|
2. 修改行列名
2.1 修改列名
columns的内容,修改前后的
# 在原数据上修改列名,以inplace设置的True为准
df3.rename(columns={'a': ' ', "b": 1}, inplace=True)
# 基于原数据上修改列名赋予新数据,原数据不变,以inplace设置的False为准
df5 = df3.rename(columns={'a': ' ', "b": 1}, inplace=False)
2.2 修改行名
# 重建列名且从0开始
# drop=True 表示删除原来的索引,drop=False 表示保留原来的行号作为一列,重新建立一个行号
df6 = df4.reset_index(drop=True)
df7 = df4.reset_index(drop=False)
如下:
drop=True | drop=False |
---|---|
3. 按条件筛选
3.1 根据条件筛选,提取所有信息
# 筛选出同时满足 a列和 b列的值的内容,并赋予新表
df8= df3[(df3['a'] == 2) & (table['b'] == 4)]
3.2 根据条件筛选,提取某列或者某几列
# 筛选出同时满足 a列和 b列的值的内容,提取 a列(只能提取一列)
df8= df3[(df3['a'] == 2) & (table['b'] == 4)]['a']
# 筛选出同时满足 a列和 b列的值的内容,提取 a列和 b列(可以提取多列)
df8= df3.loc[((df3['a'] == 2) & (table['b'] == 4)), ["a", "b"]]
4. 按某行某列提取信息
4.1 获取信息
先确定列,再确定行号。用 iloc 确定行号
content = df3["a"].iloc[0]
4.2 更改具体的值
df3["a"].iloc[0] = 3
5. 合并
5.1 单列并入大数据中(方法一)
# 设置单列数据
df = pd.DataFrame({'a': [1, 2]})
df3.insert(loc=0, column=str(soc), value=df, allow_duplicates=True)
将 df 插入 df3 的首列中
其各个含义如下:
loc | column | value | allow_duplicates |
---|---|---|---|
表示插入第几列 | 对插入的列名重命名 | 插入的列内容 | 允许出现重复的行名 |
5.2 多列并入大数据中
单列也可以如下进行合并,但必须行号相同。
df3 = pd.concat([df3, df3[["a", "b"]]], axis=1)