如何将列表数据捕获到数据框中

Ary*_*rya 4 python oracle list dataframe pandas

我有下面的代码来捕获来自两个不同表的数据,比较两个结果并获得输出。

EmplTbl = cur.execute("select A , B , C from EmployeeTable where EmplName in ('A','B')") 
emp_entries = set(cur)

DeptTbl = cur.execute("select A , B , C from DeptTable") 
dept_entries = set(cur) 

print(emp_entries.difference(dept_entries))
Run Code Online (Sandbox Code Playgroud)

以下是我收到的输出

Output: 

{(1, A, X),(2, B, Y),(3, B, Y)}
Run Code Online (Sandbox Code Playgroud)

当我尝试将其分配给数据框时,我得到了“'dict'对象没有属性'append'”,我如何使用列A,B,C或任何其他方式将“数据”上方的内容分配给适当的数据框。

预期产量:

 A, B, C     
 1, A, X
 2, B, Y
 3, B, Y
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

您可以将集合传递给DataFrame构造函数:

a = {(1, 'A', 'X'),(2, 'B', 'Y'),(3, 'B', 'Y')}

cols = ['A','B','C']
df = pd.DataFrame(a, columns=cols)
print (df)
   A  B  C
0  2  B  Y
1  1  A  X
2  3  B  Y
Run Code Online (Sandbox Code Playgroud)

如果需要按第一个值排序:

a = {(1, 'A', 'X'),(2, 'B', 'Y'),(3, 'B', 'Y')}

L  = sorted(list(a), key=lambda tup: tup[0])
cols = ['A','B','C']
df = pd.DataFrame(L, columns=cols)
print (df)
   A  B  C
0  1  A  X
1  2  B  Y
2  3  B  Y
Run Code Online (Sandbox Code Playgroud)

如果要csv使用删除索引值:

df.to_csv(file, index=False)
Run Code Online (Sandbox Code Playgroud)