python - 计算数据框字典中的行数
问题描述
我有一个数据框字典。我正在尝试计算每个数据框中的行数。对于真实数据,我的代码计算了一个只有几行的数据帧的一万多行。
我试图使用虚拟数据重现错误。不幸的是,该代码可以很好地处理虚拟数据!
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Dataframe
Df = pd.DataFrame(np.random.randint(0,10,size=(100, 4)), columns=list('ABCD'))
# Map
Ma = Df.groupby('D')
# Dictionary of Dataframes
Di = {}
for name, group in Ma:
Di[str(name)] = group
# Count the Rows in each Dataframe
Li = []
for k in Di:
Count = Di[k].shape[0]
Li.append([Count])
# Flatten
Li_1 = []
for sublist in Li:
for item in sublist:
Li_1.append(item)
# Histogram
plt.hist(Li_1, bins=10)
plt.xlabel("Rows / Dataframe")
plt.ylabel("Frequency")
fig = plt.gcf()
解决方案
要获取与中每个类别对应的行数'D'
,您可以.size
在执行以下操作时简单地使用groupby
:
Df.groupby('D').size()
pandas
还允许您直接绘制图形,因此您的代码可以简化为:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
Df = pd.DataFrame(np.random.randint(0,10,size=(100, 4)), columns=list('ABCD'))
Df.groupby('D').size().plot.hist()
plt.xlabel("Rows / Dataframe")
plt.ylabel("Frequency")
fig = plt.gcf()
推荐阅读
- android - 在带有 Apple M1 芯片的 Apple MacBook Pro 中运行“react-native run-android”命令时无法检测到模拟器
- node.js - Node.JS 使用 FFMPEG 实时流式传输音频
- postgresql - 在 AWS DMS 迁移中禁用外键约束不适用于 Postgres
- java - 在此示例中,在没有 new() 的情况下,对实例方法的方法引用如何工作?
- ios - 在 Class iOS swift 中创建值类型属性
- java - 迁移到 Spring 5.3
- ios - 呈现工作表时Swiftui删除工具栏
- python - 尝试绘制条形图时,Jupyter 笔记本一直冻结?
- sql - SQL如何连接两列添加逻辑条件
- php - 根据 WooCommerce 我的帐户中的自定义上传字段更改 WordPress 用户个人资料图片