python - 当列名未知时,从 Python 中的 DataFrame 中识别列名
问题描述
我运行一个 for 循环来执行几个 SQL 查询。我将结果捕获在 DataFrame 中(再次在循环内),如下所示,用于两个验证。
Test1 的数据帧:
index column1 column2
0 jack 100
1 bill 200
2 Tom 300
DATAFRAME 寻找 Test2:
index column1
0 102345
1 102345
我必须将每个 Test 的 Dataframe 的结果写入 Oracle 中的另一个表。为此,我需要获取列名。我无法确定循环中给定时间点存在多少列名称,因为 Dataframe 可以具有 1-5 列,具体取决于 SQL 运行。有没有办法做到这一点 。
从表中读取并写入 DataFrame 的代码:
def get_src_query_metadata(cursor, sql_query):
cursor.execute(sql_query)
columns = [col[0] for col in cursor.description]
cursor.rowfactory = lambda *args: dict(zip(columns, args))
data = pd.DataFrame(cursor.fetchall())
return data
def get_target_query_metadata(cursor, sql_query):
cursor.execute(sql_query)
columns = [col[0] for col in cursor.description]
cursor.rowfactory = lambda *args: dict(zip(columns, args))
data = pd.DataFrame(cursor.fetchall())
return data
def main():
_JobDict_src = get_src_query_metadata(cursor, src_query[i])
_JobDict_tgt = get_target_query_metadata(cursor, target_query[i])
如何将列名及其值分配给单独的变量。
解决方案
您可以通过此循环查找和计算列名
coln=0
for col in df.columns:
coln+=1
print(col)
print(coln)
并通过以下方式查找数据类型
for col in df.dtypes:
print(col)
推荐阅读
- python - python中复数的立方根
- reactjs - 电子新窗口
- c# - c#文本文件上的间距对齐
- google-chrome - 使用 Visual Studio Code 调试 JHipster 前端
- c# - C# 是否在内部处理 DataGridView.Datasource 分配中的错误
- python - 如何测试python局部变量?
- momentjs - 使用moment.js检查时间是否在两次之间,而不是在某个时区的周末
- powershell - 使用powershell从url获取域名?
- javascript - Javascript关联数组给出了许多未定义的字段
- reactjs - React Router 多条路由