Python 如何将列表数据捕获到数据帧中
我有下面的代码从两个不同的表中捕获数据,比较两个结果并获得输出Python 如何将列表数据捕获到数据帧中,python,pandas,oracle,list,dataframe,Python,Pandas,Oracle,List,Dataframe,我有下面的代码从两个不同的表中捕获数据,比较两个结果并获得输出 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.di
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))
下面是我收到的输出
Output:
{(1, A, X),(2, B, Y),(3, B, Y)}
当我试图将其分配给数据帧时,我得到的“dict”对象没有属性“append”
如何将上述数据分配到具有列A、B、C或任何其他方式的适当数据框中
预期产出:
A, B, C
1, A, X
2, B, Y
3, B, Y
您可以将集合传递给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
如果需要按第一个值排序:
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
要在写入csv时删除索引值,请使用:
谢谢你的回复。但我可以排除索引吗?还有,我可以通过变量传递列名吗。我可以用columns=[A'、[B'、[C']代替columns=[Variable]吗?@我可以再问一个问题吗?@Arya-当然,没问题。代替-cur.executes从DeptTable-中选择A、B、C,而不是在查询中指定列名A、B、C,如何使用-cur.executeselect$variable from这样的变量传递列名DeptTable@Arya-使用cur.executeselect{}from DeptTable.formatVariable
df.to_csv(file, index=False)