python-3.x - 如何使用 pandas 中的条件从两个 SQLite 表创建 Excel 文件?

标签 python-3.x pandas sqlite

我有两个 SQLite 表,分别是 Sqlite Table 1Sqlite Table 2。 Table1 具有 ID、Name 和 Code 列。表 2 包含 ID、Values 和 Con 列。 我想将 Excel 创建为 ID、名称、代码和值 列。 ID、Name 和 Code 列来自 Table1Values 列来自 table2 以及 sum value<具有两个条件table2Values列ID列应该匹配并且Con列完成值感到满意。

下图供引用: enter image description here

最佳答案

我会分步骤解决这个问题。 首先将 sql 表提取到 pandas 数据帧中。我不是问题这方面的专家,但假设您有两个如下所示的数据框:

df1 =   ID  Name    Code
      0 1   a       1a
      1 2   b       2b
      2 3   a       3c   

df2 =   ID  Values  Con
     0  1   5       Done
     1  2   9       No
     2  1   7       Done
     3  2   4       No
     4  1   8       No
     5  3   1      Done  

def sumByIndex(dx, row):
    # return sum value or 0 if ID doesn't exist
    idx = row['ID']
    st = list(dx['ID'])
    if idx in st:
        return dx[dx['ID'] == idx]['Values'].values[0]
    else:
        return 0    

def combineFrames(d1, d2):
    #Return updated version of d1 with "Values" column added
    d3 = d2[d2['Con'] == 'Done'].groupby('ID', as_index= False).sum()
    
    d1['Values'] = d1.apply( lambda row: sumByIndex(d3, row), axis = 1)
    return d1        

然后 print(combineFrames(df1, df2)) 产生:

   ID Name Code  Values
0   1    a   1a      12
1   2    b   2b       0
2   3    a   3c       1

关于python-3.x - 如何使用 pandas 中的条件从两个 SQLite 表创建 Excel 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68429268/

相关文章:

python - 使用 BeautifulSoup 解析 HTML 时缺少特殊字符和标签

python-3.x - JCC无法链接python3.5进行pylucene安装

python - 如何在 PDF 中附加多个文件?

python-3.x - 没有聚合函数的数据透视/交叉表重复问题?

android - android中的Sqlite更改数据类型

java - 无法从数据库获取数据

python-2.7 - 如何在没有 pip 或任何包管理器的情况下安装 Pandas 和依赖项

Python:如何摆脱嵌套循环?

python - 如何用 Pandas 中的单个句点和问号替换 '..' 和 '?.'? df ['column' ].str.replace 不起作用

sql - sqlite3中的case表达式