python - 使用 Pandas 绘制 X 对 Y 的频率,其中 X 为 0 或 1 [Python,CSV,Pandas]
问题描述
我有一个已生成并更改为当前形式的 CSV 文件;
我希望能够绘制一个图形,该图形将 X 沿 X 轴正常,Y 轴为频率“真”值,即(1),以便我可以可视化时间和频率之间的关系发生的事件。
到目前为止,我已经尝试过融化并使用 value_counts 但它们似乎给出了绝对值,而不是相对于 X 值。我知道在绘图之前数据可能需要另外排序,但我不确定最好的方法。
非常感谢您的帮助。
解决方案
您可以绘制一个可能会起作用的直方图。或者您可以使用 groupby 'x' 来查找 'y' 的总和,代码如下所示:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = np.array([[1988,1988,1988,1989,1990,1990,1991,1991], [0,1,1,0,1,1,0,0]])
df = pd.DataFrame(data.T, columns = ['x', 'y'])
df=df.groupby(['x']).sum()
print(df)
推荐阅读
- gcc - How to build and use GoogleTest shared library (.so) using g++ on Linux?
- c++ - Different ways of implementing atomic *=
- pyspark - 如何有效地使用 pyspark mapPartitions 训练 facebook 先知模型?
- javascript - 标记内部 iframe 不起作用
- ios - 如何在 iOS 中创建 ByteBuffer?
- statistics - 方差分析不显着但系数变量显着?
- vue.js - Vue不显示来自数据对象的数据
- python - 使用 xgboost 时出现问题,错误 - “OSError: [WinError 126] The specified module could not be found”
- c++ - 检查失败:1 == NumElements() (1 vs. 2)必须有一个单元素张量
- google-cloud-platform - 在 Google 云实例删除时通知电子邮件