我有两个 SQLite 表,分别是 Sqlite Table 1
和 Sqlite Table 2
。
Table1 具有 ID、Name 和 Code
列。表 2 包含 ID、Values 和 Con
列。
我想将 Excel 创建为 ID、名称、代码和值
列。 ID、Name 和 Code
列来自 Table1
,Values
列来自 table2
以及 sum value<具有两个
是条件
的table2
的Values列
的ID列
应该匹配并且Con列
对完成值
感到满意。
最佳答案
我会分步骤解决这个问题。 首先将 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/