为了绘制从数据帧发出的直方图,我似乎缺乏转换为matplotlib可以处理的正确对象类型。这是一些失败的尝试。我该如何解决?
更一般地说,你通常如何挽救这样的东西?
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
filter(lambda v: v > 0, df['foo_col']).hist(bins=10)
---> 10 filter(lambda v:v> 0,df ['foo_col'])。hist(bins = 100) AttributeError:'filter'对象没有属性'hist'
hist(filter(lambda v: v > 0, df['foo_col']), bins=100)
---> 10 hist(filter(lambda v:v> 0,df ['foo_col']),bins = 100) TypeError:'Series'对象不可调用
答案 0 :(得分:1)
大家都说filter
is lucky to be part of the standard library。 IIUC,您只想过滤数据帧以绘制值if tweet.coordinates is not None:
#print(tweet.coordinates) # => {'type': 'Point', 'coordinates': [2.28892949, 48.85200032]}
lon = tweet.coordinates['coordinates'][0]
lat = tweet.coordinates['coordinates'][1]
的直方图。 Pandas有自己的语法:
> 0
请注意,这将比python builtins所希望的要快得多(它在我的琐碎例子中没有太大的区别,但它将使用更大的数据集)。尽可能将pandas方法与数据帧一起使用非常重要,因为在许多情况下,计算将被矢量化并在高度优化的C / C ++代码中运行。