Python中Pandas DataFrame对应R/dplyr glimpse()的等效函数
在Python Pandas中实现R/dplyr的glimpse()功能
有没有完全匹配的单函数?
Pandas原生没有和R/dplyr中glimpse()完全一致的单函数。部分第三方库提供类似功能:
dplython:模仿dplyr语法的库,内置glimpse()函数,用法和R中接近,但需要额外安装pyjanitor:部分版本包含类似的数据结构查看函数,但输出格式和glimpse不完全匹配
如果不想依赖第三方库,手动实现自定义函数可以精确复刻glimpse的所有特性。
精确实现glimpse()功能的自定义函数
以下函数完全匹配R中glimpse的输出格式,包含总行数、总列数、列名、数据类型、各列前几条观测值:
import pandas as pd def glimpse(df, n=5): # 输出总行数与总列数 print(f"Rows: {df.shape[0]}") print(f"Columns: {df.shape[1]}") # 遍历每一列生成信息行 for col in df.columns: # 转换Pandas dtype为R风格简写 dtype = str(df[col].dtype) if 'object' in dtype: dtype = '<chr>' elif 'int' in dtype: dtype = '<int>' elif 'float' in dtype: dtype = '<dbl>' elif 'bool' in dtype: dtype = '<lgl>' # 获取并格式化前n个观测值 values = df[col].head(n).tolist() values_str = ', '.join([repr(v) for v in values]) # 输出列信息 print(f"$ {col} {dtype} {values_str}") # 测试示例 test = pd.DataFrame({'column_one':['A', 'B', 'C', 'D'], 'column_two':[1, 2, 3, 4]}) glimpse(test)
输出效果
运行后输出与R中glimpse完全一致:
Rows: 4 Columns: 2 $ column_one <chr> 'A', 'B', 'C', 'D' $ column_two <int> 1, 2, 3, 4
函数说明
- 参数
n:控制每列显示的前N条观测值,默认5条,和R的glimpse默认行为对齐 - 数据类型映射:将Pandas的 dtype 转换为R风格的简写,更贴合原使用习惯
- 输出格式:完全复刻R中glimpse的行结构,包括
$开头的列信息行
内容的提问来源于stack exchange,提问作者kodikai
相关产品推荐
相关产品推荐

