【问题标题】:Sorting column entries in Pandas by name and week按名称和周对 Pandas 中的列条目进行排序
【发布时间】:2016-03-24 09:11:39
【问题描述】:

我有一个 csv 文件,我正在尝试对其进行操作和绘图。这是每家公司全年统计数据的表格数据。我想绘制十年来每周(比如说)谷歌的收入。所以,我知道我必须将几年的数据以数组的形式拼接在一起。但是,我不确定如何以周为单位来组织这些数据。

(1) 我如何搜索列只找到“Google”和 (2) 我如何按周绘制?我想我必须从第 1 天到第 7 天总结

fname = "file.csv"

import pandas as pd
data = pd.read_csv(rita1989)

data.columns
#OUTPUT ..., 'Date', 'DayWeek',..., 'Companies', ..., 'Earnings'

01/05/2008 7    Yahoo       5678.89
01/06/2008 1    Google      3486.84
01/07/2008 2    Google      2379.23
01/08/2008 3    Ask         3578.22
01/09/2008 4    Google      2341.10
01/10/2008 5    DuckDuckGo  8410.00

【问题讨论】:

  • 仅使用“google”数据,然后使用data[data['Companies'] == 'Google']

标签: python pandas


【解决方案1】:

类似这样的:

data['week'] = pd.DatetimeIndex(data['Date']).to_period('W-SAT').to_timestamp(how='end')
data[data['Companies']=='Google'].groupby('week')['Earnings'].sum()

我怀疑有比我正在做的更优雅的方式来获取周变量。

这也应该可以,但我们必须将索引设为日期:

data.index = pd.DatetimeIndex(data['Date'])
goog_totals = data['Earnings'].resample('w', how='sum').dropna()

此时,您可以使用goog_totals.plot() 进行绘图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2021-07-06
    • 1970-01-01
    相关资源
    最近更新 更多