SMU*_*SMU 7 python numpy matplotlib pandas
我有一个解析的非常大的数据帧,其中包含一些像这样的值和几列:
Name Age Points ...
XYZ 42 32pts ...
ABC 41 32pts ...
DEF 32 35pts
GHI 52 35pts
JHK 72 35pts
MNU 43 42pts
LKT 32 32pts
LKI 42 42pts
JHI 42 35pts
JHP 42 42pts
XXX 42 42pts
XYY 42 35pts
Run Code Online (Sandbox Code Playgroud)
我导入了numpy和matplotlib.
我需要绘制"点"列中的值出现次数的图表.我不需要为绘图设置任何箱子.因此,更多的情节是查看在大型数据集上出现相同分数的次数.
所以基本上条形图(或直方图,如果你可以称之为)应该显示32次出现三次,35次出现5次,42次出现4次.如果我可以按排序顺序绘制值,那就更好了.我试过df.hist()但它对我不起作用.有线索吗?谢谢.
Pau*_*l H 24
只需直接绘制数据框value_count
方法的结果:
import matplotlib.pyplot as plt
import pandas
data = load_my_data()
fig, ax = plt.subplots()
data['Points'].value_counts().plot(ax=ax, kind='bar')
Run Code Online (Sandbox Code Playgroud)
如果要从列中的所有元素中删除字符串'pnts',可以执行以下操作:
df['points_int'] = df['Points'].str.replace('pnts', '').astype(int)
Run Code Online (Sandbox Code Playgroud)
这假设他们都以'pnts'结束.如果它在一行之间变化,你需要查看这样的正则表达式: 使用pandas拆分列
官方文档:http://pandas.pydata.org/pandas-docs/stable/text.html#text-string-methods
小智 11
Seaborn 包具有countplot
可用于制作频率图的功能:
import seaborn as sns
ax = sns.countplot(x="Points",data=df)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26313 次 |
最近记录: |