小编jen*_*ryb的帖子

Dataframe中的KeyError

我有一个数据框,当我将其导出到csv文件时,它看起来就像我想要的那样.

CompanyName 1   2   3   4   5   6   7   8   9   10  11  12
Company 1   182 270 278 314 180 152 110 127 129 117 127 81
Company 2   163 147 192 142 186 231 214 130 112 117 93  101
Company 3   126 88  99  139 97  97  96  37  79  116 111 95
Company 4   84  89  71  95  80  89  83  88  104 93  78  64
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从"CompanyName"键中取出时,我得到一个KeyError: 'CompanyName'我怀疑它被覆盖的地方,但我不知道如何解决它.

如果我打印我的数据帧我得到:

pivot_table.head(2)
Out[62]: 
Month                  1    2 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas keyerror

3
推荐指数
1
解决办法
2万
查看次数

如何在异步等待调用节点上设置timeout

如何在async await函数调用中添加setTimeout?

我有

    request = await getProduct(productids[i]);
Run Code Online (Sandbox Code Playgroud)

哪里

const getProduct = async productid => {
        return requestPromise(url + productid);
   };
Run Code Online (Sandbox Code Playgroud)

我试过了

    request = await setTimeout((getProduct(productids[i])), 5000);
Run Code Online (Sandbox Code Playgroud)

并得到了TypeError: "callback" argument must be a function有意义的错误.请求在一个循环内部,这使我在api调用上达到了速率限制.

exports.getProducts = async (req, res) => {
  let request;
  for (let i = 0; i <= productids.length - 1; i++) {
    request = await getProduct(productids[i]);
    //I want to wait 5 seconds before making another call in this loop!
  }
};
Run Code Online (Sandbox Code Playgroud)

callback settimeout node.js async-await

3
推荐指数
4
解决办法
6627
查看次数

选择过去 X 个月的数据

我想选择过去 4 个月的数据。我想从月初开始,所以如果现在是 7 月 28 日,我需要 3 月 1 日至 7 月 28 日的数据。

目前我使用 DateOffset,我意识到它正在调用 March28-July28 并遗漏了我的很多数据。

df = pd.read_csv('MyData.csv')

df['recvd_dttm'] = pd.to_datetime(df['recvd_dttm'])

#Only retrieve data before now (ignore typos that are future dates)

mask = df['recvd_dttm'] <= datetime.datetime.now()
df = df.loc[mask]
# get first and last datetime for final week of data

range_max = df['recvd_dttm'].max()
range_min = range_max - pd.DateOffset(months=4)

# take slice with final week of data
df = df[(df['recvd_dttm'] >= range_min) & 
               (df['recvd_dttm'] <= range_max)] …
Run Code Online (Sandbox Code Playgroud)

python datetime dataframe pandas relativedelta

2
推荐指数
1
解决办法
4107
查看次数

在python中检查是否是月底

我正在编写代码来获取去年的数据。我想像这样对较早的日期进行四舍五入:如果是 2015 年 7 月 14 日,我想要 2014 年 8 月 1 日至 2015 年 7 月 14 日的数据

df = pd.read_csv('MyData.csv') 
df['recvd_dttm'] = pd.to_datetime(df['recvd_dttm'])
range_max = datetime.datetime.now() 
range_min = range_max - pd.tseries.offsets.DateOffset(years=1)+ pd.tseries.offsets.MonthEnd(1) + pd.tseries.offsets.DateOffset(days=1)
if datetime.datetime.now() == is_month_end:

# take slice with final week of data
df = df[(df['recvd_dttm'] >= range_min) & 
               (df['recvd_dttm'] <= range_max)]
Run Code Online (Sandbox Code Playgroud)

我的问题是,当它是2015年7月31日,我的代码转到结束未来一个月,基本上切割出一整月。

我正在尝试创建一个 for 循环来解决这个问题。

如果是月底:

range_min = range_max - pd.tseries.offsets.DateOffset(years=1)
Run Code Online (Sandbox Code Playgroud)

别的:

range_min = range_max - pd.tseries.offsets.DateOffset(years=1)+ pd.tseries.offsets.MonthEnd(1) + pd.tseries.offsets.DateOffset(days=1)
Run Code Online (Sandbox Code Playgroud)

我如何告诉python检查月底?MonthEnd 只是一个偏移函数。

python datetime pandas

2
推荐指数
3
解决办法
1万
查看次数

时间戳到使用 Python 的月份和年份列表

我想从时间戳列表中获取月份和年份列表。

date_list 的输出是

Out[16]: 
[Timestamp('2014-09-30 00:00:00'),
 Timestamp('2014-10-31 00:00:00'),
 Timestamp('2014-11-30 00:00:00'),
 Timestamp('2014-12-31 00:00:00'),
 Timestamp('2015-01-31 00:00:00'),
 Timestamp('2015-02-28 00:00:00'),
 Timestamp('2015-03-31 00:00:00'),
 Timestamp('2015-04-30 00:00:00'),
 Timestamp('2015-05-31 00:00:00'),
 Timestamp('2015-06-30 00:00:00'),
 Timestamp('2015-07-31 00:00:00'),
 Timestamp('2015-08-31 00:00:00'),
 Timestamp('2015-09-30 00:00:00')]
Run Code Online (Sandbox Code Playgroud)

我希望它是 [2014 年 9 月,2014 年 10 月,...2015 年 9 月]

如果我尝试按原样绘制它,我就会明白TypeError: unsupported operand type(s) for +: 'Timestamp' and 'str'这是有道理的。我不知道如何从 Timestamp 获得该图将接受的值。我尝试使用 datetime.datetime(date_list) 并得到TypeError: an integer is required

我也试过,pd.to_datetime(formatted.index, format='%b %Y').tolist()但这给出了相同的时间戳输出。

编辑:有关代码的更多信息。

我的原始数据框如下所示:

groupname                             A                B     Total
recvd_dttm                                                      
2014-09-30                            21               55     76
2014-10-31                            20               66 …
Run Code Online (Sandbox Code Playgroud)

python timestamp graph pandas bokeh

1
推荐指数
1
解决办法
1520
查看次数