使用 python 中的索引位置在单个 df 中附加多个数据帧

append multiple dataframes in a single df using the index position in python

我有以下格式的多个数据框。 0 和 1 表示按顺序排列的单个 DF 中的索引(例如列名 emp_number 的长度为 55,来自以下示例)

0 Tablename
1 xyz  
0 Tablename
1 xyz

0  colName
1   emp_number  
0 colName
1 Organization_unit
   
0 ColumnLen
1 55
0 ColumnLen
1 60

我需要以下格式的输出

TableName  ColumnName         ColumnLen

xyz        emp_number          55
xyz        Organization_unit   45
xyz        pos_unit            60

我试过这个代码

      for row in df.index:
            print(row)
 for value in df.index.values:
            print(value)

但我得到的输出仅为 0 和 1,而不是实际值

我想合并所有的 DF 并放入一个巨大的 DF,可用于 DF运行 SQL

我的示例输入数据包含一些其他过程的结果

data = ('tablename', 'xyz') ('tablename','xyz') ('columnname', 'emp_number')('columnname', 'Organization_unit')('columnlen', 55)('columnlen', 60)

post 我已经这样添加了我的 DF

df = pd.DataFrame.from_dict(data) 

之后我就出来了

[2022-05-17T09:27:01.162Z] 0       columnName
[2022-05-17T09:27:01.163Z] 1       emp_number
[2022-05-17T09:27:01.163Z]                  0
[2022-05-17T09:27:01.164Z] 0       columnName
[2022-05-17T09:27:01.164Z] 1        Organization_unit
[2022-05-17T09:27:01.217Z] 0        columnlen
[2022-05-17T09:27:01.218Z] 1             55
[2022-05-17T09:27:01.218Z]               0
[2022-05-17T09:27:01.217Z] 0        columnlen
[2022-05-17T09:27:01.218Z] 1             60
[2022-05-17T09:27:01.218Z]               0

并且我想要一个从 DF 动态生成的文件,因为我不知道由于先前的过程而创建了多少个小的 df。

输入


### assuming this is your data
data = ('tablename', 'xyz'),('tablename','xyz'),('columnname', 'emp_number'),('columnname', 'Organization_unit'),('columnlen', 55),('columnlen', 60),('edge_cases','so edgy')

### create empty lists that will be your columns in your final df
TableName_list = []
ColumnName_list = [] 
ColumnLen_list = []

### iterate over tuples looking at what first element (x[0]) is 
### and checking it for values of interest and appending to corresponding lists
for x in data:
    if x[0] == 'tablename':
        TableName_list.append(x[1])
    elif x[0] == 'columnname':
        ColumnName_list.append(x[1])
    elif x[0] == 'columnlen':
        ColumnLen_list.append(x[1])

    ### check if there are some other / unexpected values and print them out
    else:
        f"you have some other data here too like this one where first element == {x[0]}"
        f"`````````````````````````````````````````````````````````"
        
### create your final dataframe from lists above
final_df = pd.DataFrame({'TableName':TableName_list,
                         'ColumnName':ColumnName_list,
                         'ColumnLen':ColumnLen_list 
                        })

final_df

输出