使用 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
输出
我有以下格式的多个数据框。 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
输出