我想从下面显示的两列中计算一个mean
和standard deviation
一个timedelta
银行dataframe
.当我运行代码(也显示如下)时,我得到以下错误:
pandas.core.base.DataError: No numeric types to aggregate
Run Code Online (Sandbox Code Playgroud)
我的数据帧:
bank diff
Bank of Japan 0 days 00:00:57.416000
Reserve Bank of Australia 0 days 00:00:21.452000
Reserve Bank of New Zealand 55 days 12:39:32.269000
U.S. Federal Reserve 8 days 13:27:11.387000
Run Code Online (Sandbox Code Playgroud)
我的代码:
means = dropped.groupby('bank').mean()
std = dropped.groupby('bank').std()
Run Code Online (Sandbox Code Playgroud) 我试图找到日期时间格式的pandas数据帧中两列之间的时间差异.
下面是我的数据框中的一些数据和我一直在使用的代码.我已经三次检查这两个列dtypes是datetime64.
我的数据:
date_updated date_scored
2016-03-30 08:00:00.000 2016-03-30 08:00:57.416
2016-04-07 23:50:00.000 2016-04-07 23:50:12.036
Run Code Online (Sandbox Code Playgroud)
我的代码:
data['date_updated'] = pd.to_datetime(data['date_updated'],
format='%Y-%m-%d %H:%M:%S')
data['date_scored'] = pd.to_datetime(data['date_scored'],
format='%Y-%m-%d %H:%M:%S')
data['Diff'] = data['date_updated'] - data['date_scored']
Run Code Online (Sandbox Code Playgroud)
我收到的错误消息:
TypeError: data type "datetime" not understood
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,谢谢!
我的解决方案:
for i in raw_data[:10]:
scored = i.date_scored
scored_date = pd.to_datetime(scored, format='%Y-%m-%d %H:%M:%S')
if type(scored_date) == "NoneType":
pass
elif scored_date.year >= 2016:
extracted = i.date_extracted
extracted = pd.to_datetime(extracted, format='%Y-%m-%d %H:%M:%S')
bank = i.bank.name
diff = scored - extracted
datum = [str(bank), str(extracted), str(scored), …
Run Code Online (Sandbox Code Playgroud) 我的 Pandas 数据框中的一列代表我用 datetime 计算的时间增量,然后导出到 csv 并读回 Pandas 数据框中。现在该列的 dtype 是 object 而我希望它是 timedelta 这样我就可以在数据帧上执行 groupby 函数。下面是字符串的样子。谢谢!
0 days 00:00:57.416000
0 days 00:00:12.036000
0 days 16:46:23.127000
49 days 00:09:30.813000
50 days 00:39:31.306000
55 days 12:39:32.269000
-1 days +22:03:05.256000
Run Code Online (Sandbox Code Playgroud)
更新,我最好尝试编写一个 for 循环来迭代我的 Pandas 数据帧中的特定列:
def delta(i):
days, timestamp = i.split(" days ")
timestamp = timestamp[:len(timestamp)-7]
t = datetime.datetime.strptime(timestamp,"%H:%M:%S") +
datetime.timedelta(days=int(days))
delta = datetime.timedelta(days=t.day, hours=t.hour,
minutes=t.minute, seconds=t.second)
delta.total_seconds()
data['diff'].map(delta)
Run Code Online (Sandbox Code Playgroud) 我对SQL,PostgreSQL和DBeaver完全陌生。尝试简单地从数据库查询表时:
SELECT * FROM operation.fs.ten_q_score;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
SQL Error [0A000]: ERROR: cross-database references are not implemented: "operation.fs.ten_q_score"¶ Position: 15
Run Code Online (Sandbox Code Playgroud)
我已经看过dblink,但是甚至不了解如何安装dblink这样的东西(即使在查看了实际的文档之后)。
任何指导深表感谢!
我正在使用以下代码:
estpost summarize gdpgrowth, listwise
esttab, cells("mean sd min max") nomtitle number
Run Code Online (Sandbox Code Playgroud)
gdpgrowth
这个想法是使用创建变量的汇总统计表esttab
。
我得到这个输出:
(1)
我喜欢这方面的一切,除了我想从平均名称中删除 the ,sd
转为standard deviation
,min
转为minimum
和max
转入maximum
。
我还想将每个数字四舍五入到小数点后第二位并更改N
为sample size
.
datetime ×3
pandas ×3
python ×3
timedelta ×2
dbeaver ×1
mean ×1
postgresql ×1
stata ×1
statistics ×1
subtraction ×1
summary ×1