Python pandas DataFrame 常用操作(新增、删除、修改和查询)

Python pandas DataFrame是由共用相同索引的一组列组成的表格型数据类型,每列值的类型可以不同。也可以对它进行新增、删除、修改和查询等操作,本文主要介绍 DataFrame 常用操作(新增、删除、修改和查询)。

1、创建 DataFrame

import pandas as pd
 
data = [['张三', 21, '男'], ['李四', 26, '女'], ['王五', 33, '男']]
df = pd.DataFrame(data, columns=['姓名', '年龄', '性别'])
print(df)

2、DataFrame中添加数据

1)添加一列

import pandas as pd
 
data = [['张三', 21, '男'], ['李四', 26, '女'], ['王五', 33, '男']]
df = pd.DataFrame(data, columns=['姓名', '年龄', '性别'])
#方法一
#添加空列
df['住址'] = None
#添加非空列
df['体重'] =['60kg','50kg','66kg']
#方法二
df2 = df.assign(address = ['地址1','地址2','地址3'])
print(df2)

2)添加一行

import pandas as pd
 
data = [['张三', 21, '男'], ['李四', 26, '女'], ['王五', 33, '男']]
df = pd.DataFrame(data, columns=['姓名', '年龄', '性别'])
#方法一
df.loc[len(df.index)] = ['亮亮', 30, '男'] 
print(df)
#方法二

dfi = pd.DataFrame([['小红', 18, '女']], columns=['姓名', '年龄', '性别'])
df2 = pd.concat([df, dfi])
df2.reset_index()
print(df2)

3、删除DataFrame中数据

import pandas as pd
 
data = [['张三', 21, '男'], ['李四', 26, '女'], ['王五', 33, '男']]
df = pd.DataFrame(data, columns=['姓名', '年龄', '性别'], index=['a', 'b', 'c'])
print(df)
#删除列
print(df.drop('性别',axis=1))
#inplace=True是不创建新的对象,直接对原始对象进行修改
#df.drop('column_name', axis=1, inplace=True)
#使用del删除列
#del df['column_name']
#删除一行
#df.drop('c')
#删除多行
df1 = df.drop(index=['a','c'])
print(df1)

4、修改DataFrame中数据

import pandas as pd
 
data = [['张三', 21, '男'], ['李四', 26, '女'], ['王五', 33, '男']]
df = pd.DataFrame(data, columns=['姓名', '年龄', '性别'])
print(df)
#修改行名
df1 = df.rename(index={2: "b", 3: "c"}) 
print(df1)
#修改列名
df2 = df.rename(columns={"年龄": "[年龄]"})
print(df2)
#通过行名修改行数据
df.loc[1,:] = ["小李", 22, "女"] 
print(df)
#通过列名修改列数据
df.loc[ :,"性别" ] = ["男", "男", "男"] 
print(df)

5、查询DataFrame中数据

1)要查询列值等于some_value

df.loc[df['column_name'] == some_value]

2)要查询列包含在可迭代的some_values

df.loc[df['column_name'].isin(some_values)]

3)查询多个条件可以使用&

df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]

4)要查询列值不等于some_value

df.loc[df['column_name'] != some_value]

5)isin返回布尔值是在其中的条件,不在其中可以使用~

df.loc[~df['column_name'].isin(some_values)]

例如,

import pandas as pd
 
data = [['张三', 21, '男'], ['李四', 26, '女'], ['王五', 33, '男']]
df = pd.DataFrame(data, columns=['姓名', '年龄', '性别'])
print(df.loc[df['性别'] == '男'])

推荐阅读
cjavapy编程之路首页