Python——Pandas(DataFrame常用方法)

48 阅读2分钟

检测 DataFrame 中的缺失值

DataFrame.isnull() / DataFrame.notnull()

即:有值置为Ture,无值置为False

import pandas as pd
import numpy as np

d = [[8, np.nan],
     [np.nan, 7],
     [0, 2],
     [np.nan, np.nan]]

df = pd.DataFrame(data=d)
print(df)
print(df.isnull())
print(df.notnull())

插入新的列

DataFrame.insert(loc, column, value)

import pandas as pd

d = {'name': ['Tom', 'Bob', 'Linda'], 'age': [17, 18,
                                              26]}
df = pd.DataFrame(data=d, index=['p1', 'p2', 'p3'])
print(df)

# insert()方法插入新的列
df.insert(2, 'weight', [65, 75, 60])
print(df)

修改索引并返回重新索引组成的新的 DataFrame 对象

DataFrame.reindex(labels=None, axis=0, index=None, columns=None, fill_value=np.NaN)

  • labels:要获取数据的列标签或者行标签,传入列表,与axis对应 - axis:轴的方向,0为行,1为列
  • index:要获取数据的行索引,传入列表
  • columns:要获取数据的列索引,传入列表
  • fill_value:填充的缺失值(标量),默认为 np.NaN
import pandas as pd
import numpy as np

data = np.arange(12).reshape(3, 4)
df = pd.DataFrame(data, index=['n1', 'n2', 'n3'],
                  columns=['a', 'b', 'c', 'd'])
print(df)

# 重新索引行标签为'n2'的数据行
df2 = df.reindex(labels=['n2'], axis=0)
print(df2)

df2 = df.reindex(index=['n2'])
print(df2)

# 重新索引列标签为'c'的数据行
df2 = df.reindex(labels=['c'], axis=1)
print(df2)

df2 = df.reindex(columns=['c'])
print(df2)
# 分别重新索引行标签为'n2'、'n1'、'n4'的数据行

连接两个DataFrame

pd.concat(objs, axis=0, join='outer',ignore_index=False)

  • objs:DataFrame对象的序列
  • axis:要拼接的轴
  • join:外连接('outer')保留两个表中的所有信息(默认);内连接 ('inner')只保留共有信息
  • ignore_index:如果指定为 True,则索引将变为从0开始递增的整 数 返回一个新的 DataFrame
import pandas as pd

df = pd.DataFrame([[1, 2], [3, 4]], index=['p1','p2'], columns=list('AB'))
print(df)

df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AC'))
print(df2)

print(pd.concat([df, df2]))
print(pd.concat([df, df2], join='inner'))
print(pd.concat([df, df2], axis=1))
df2.index = [0, 'p1']  # 修改索引
print(df2)
print(pd.concat([df, df2], axis=1, join='inner'))

pd.merge

DataFrame.drop

DataFrame.dropna

DataFrame.fillna

DataFrame.info

DataFrame.describe

DataFrame.count(axis=0) 返回指定轴的非缺失值的数量 DataFrame.max(axis=0) 返回指定轴的最大值 DataFrame.min(axis=0) 返回指定轴的最小值 DataFrame.mean(axis=0) 返回指定轴的平均值 DataFrame.var(axis=0) 返回指定轴的方差 DataFrame.std(axis=0) 返回指定轴的标准差

DataFrame.sample

DataFrame.drop_duplicates

DataFrame.sort_values

DataFrame.apply

DataFrame.groupby