我对熊猫做了很多sql,我遇到了以下挑战。在
我有一个数据框
UserID, AccountNo, AccountName
123, 12345, 'Some name'
...
我想为每个账号添加一个名为total revenue的列,它是从mysql数据库中获得的
^{pr2}$我需要扩展数据帧
UserID, AccountNo, AccountName, TotalRevenue
123, 12345, 'Some name', df1
...
到目前为止,我得到的代码(不工作的代码会产生一个getitem错误)
sets3 = []
i=0
for accountno in df5['kna1_kunnr']:
df1 = pd.read_sql(('select sum(VBRK_NETWR) as sum from sapdata2016.orders where VBAK_BSARK="ZEDI" and VBRK_KUNAG = %s;') % accountno, conn)
df2 = pd.DataFrame([(df5['userid'][i], df5['kna1_kunnr'][i], accountno, df5['kna1_name1'][i], df1['sum'][0])], columns=['User ID', 'AccountNo', 'tjeck', 'AccountName', 'Revenue'])
sets3.append(df2)
i += 1
df6 = pd.concat(sets3)
这个想法/代码并不漂亮,我想知道是否有更好/更好的方法来实现它,有什么想法?在
考虑将pandas数据作为临时表导出到MySQL,然后运行一个连接pandas数据的SQL查询和TotalRevenue的聚合查询。然后,将resultset读入pandas dataframe。这种方法避免了任何循环。在
当然反之亦然,合并现有数据帧的两个pandas数据帧和分组聚合查询结果集:
^{pr2}$相关问题 更多 >
编程相关推荐