【发布时间】:2016-12-07 20:49:32
【问题描述】:
我正在尝试过滤掉一些数据,但似乎遇到了一些错误。 此语句下方是我拥有的以下代码的副本:
url = "http://elections.huffingtonpost.com/pollster/2012-general-election-romney-vs-obama.csv"
source = requests.get(url).text
s = StringIO(source)
election_data = pd.DataFrame.from_csv(s, index_col=None).convert_objects(
convert_dates="coerce", convert_numeric=True)
election_data.head(n=3)
last_day = max(election_data["Start Date"])
filtered = election_data[((last_day-election_data['Start Date']).days <= 5)]
如您所见,last_day 是election_data 列中的最大值 我想过滤掉数据之间的差异 max 和 x 小于或等于 5 天 我尝试过使用 for - 循环和列表理解的各种组合。
filtered = election_data[map(lambda x: (last_day - x).days <= 5, election_data["Start Date"]) ]
这行通常可以工作,但是 python3 给了我以下错误:
<map object at 0x10798a2b0>
【问题讨论】:
-
对于python 3需要添加
list-filtered = election_data[list(map(lambda x: (last_day - x).days <= 5, election_data["Start Date"]))] -
查看更好的解释here
-
这不是错误。
标签: python python-3.x pandas numpy dataframe