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['性别'] == '男'])