我有一个数据框,当我将其导出到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) 如何在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)
我想选择过去 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) 我正在编写代码来获取去年的数据。我想像这样对较早的日期进行四舍五入:如果是 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 只是一个偏移函数。
我想从时间戳列表中获取月份和年份列表。
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)