Convert a patterned list into data frame
Question:
I’ve some list which is in weird shape as follows. list is saved in a var res
print(res)
output I got when I print this list
[ identity VGG-Face_cosine img
0 ./clip2/0.png 1.110223e-16 .clip1 .png
1 ./clip2/2.png 1.117194e-01 .clip1 .png
2 ./clip2/6.png 1.117194e-01 .clip1 .png
3 ./clip2/1.png 1.476002e-01 .clip1 .png,
identity VGG-Face_cosine img
0 ./clip2/1.png 4.440892e-16 .clip11.png
1 ./clip2/2.png 1.284562e-01 .clip11.png
2 ./clip2/6.png 1.284562e-01 .clip11.png
3 ./clip2/0.png 1.476002e-01 .clip11.png,
identity VGG-Face_cosine img
0 ./clip2/2.png -4.440892e-16 .clip12.png
1 ./clip2/6.png -4.440892e-16 .clip12.png
2 ./clip2/0.png 1.117194e-01 .clip12.png
3 ./clip2/1.png 1.284562e-01 .clip12.png,
identity VGG-Face_cosine img
0 ./clip2/3.PNG 3.330669e-16 .clip13.PNG,
identity VGG-Face_cosine img
0 ./clip2/4.PNG 0.0 .clip14.PNG
1 ./clip2/8.PNG 0.0 .clip14.PNG,
identity VGG-Face_cosine img
0 ./clip2/5.jpg -2.220446e-16 .clip15.jpg ]
I’ve checked type of output
type(res)
output
list
my aim is to convert this into pandas df
. By reading documentation what I’ve tried is
import pandas as pd
df_new = pd.DataFrame(res)
output I got
0 identity VGG-Face_cosine img 0 ./clip2/0.png 1.110223e-16 .clip1 .png 1 ./clip2/2.png 1.117194e-01 .clip1 .png 2 ./clip2/6.png 1.117194e-01 .clip1 .png 3 ./clip2/1.png 1.476002e-01 .clip1 .png
1 identity VGG-Face_cosine img 0 ./clip2/1.png 4.440892e-16 .clip11.png 1 ./clip2/2.png 1.284562e-01 .clip11.png 2 ./clip2/6.png 1.284562e-01 .clip11.png 3 ./clip2/0.png 1.476002e-01 .clip11.png
2 identity VGG-Face_cosine img 0 ./clip2/2.png -4.440892e-16 .clip12.png 1 ./clip2/6.png -4.440892e-16 .clip12.png 2 ./clip2/0.png 1.117194e-01 .clip12.png 3 ./clip2/1.png 1.284562e-01 .clip12.png
3 identity VGG-Face_cosine img 0 ./clip2/3.PNG 3.330669e-16 .clip13.PNG
4 identity VGG-Face_cosine img 0 ./clip2/4.PNG 0.0 .clip14.PNG 1 ./clip2/8.PNG 0.0 .clip14.PNG
5 identity VGG-Face_cosine img 0 ./clip2/5.jpg -2.220446e-16 .clip15.jpg
6 identity VGG-Face_cosine img 0 ./clip2/2.png -4.440892e-16 .clip16.png 1 ./clip2/6.png
........................................
output I’m expecting
identity VGG-Face_cosine img
0 ./clip2/0.png 1.110223e-16 .clip1 .png
1 ./clip2/2.png 1.117194e-01 .clip1 .png
2 ./clip2/6.png 1.117194e-01 .clip1 .png
3 ./clip2/1.png 1.476002e-01 .clip1 .png
identity VGG-Face_cosine img
0 ./clip2/1.png 4.440892e-16 .clip11.png
1 ./clip2/2.png 1.284562e-01 .clip11.png
2 ./clip2/6.png 1.284562e-01 .clip11.png
3 ./clip2/0.png 1.476002e-01 .clip11.png
identity VGG-Face_cosine img
0 ./clip2/2.png -4.440892e-16 .clip12.png
1 ./clip2/6.png -4.440892e-16 .clip12.png
2 ./clip2/0.png 1.117194e-01 .clip12.png
3 ./clip2/1.png 1.284562e-01 .clip12.png
identity VGG-Face_cosine img
0 ./clip2/3.PNG 3.330669e-16 .clip13.PNG
identity VGG-Face_cosine img
0 ./clip2/4.PNG 0.0 .clip14.PNG
1 ./clip2/8.PNG 0.0 .clip14.PNG
identity VGG-Face_cosine img
0 ./clip2/5.jpg -2.220446e-16 .clip15.jpg
Am i missing anything here?.
Answers:
IIUC use concat
– seems you get list of DataFrames:
df = pd.concat(res)
Difference of your expected ouput is only one header.
I’ve some list which is in weird shape as follows. list is saved in a var res
print(res)
output I got when I print this list
[ identity VGG-Face_cosine img
0 ./clip2/0.png 1.110223e-16 .clip1 .png
1 ./clip2/2.png 1.117194e-01 .clip1 .png
2 ./clip2/6.png 1.117194e-01 .clip1 .png
3 ./clip2/1.png 1.476002e-01 .clip1 .png,
identity VGG-Face_cosine img
0 ./clip2/1.png 4.440892e-16 .clip11.png
1 ./clip2/2.png 1.284562e-01 .clip11.png
2 ./clip2/6.png 1.284562e-01 .clip11.png
3 ./clip2/0.png 1.476002e-01 .clip11.png,
identity VGG-Face_cosine img
0 ./clip2/2.png -4.440892e-16 .clip12.png
1 ./clip2/6.png -4.440892e-16 .clip12.png
2 ./clip2/0.png 1.117194e-01 .clip12.png
3 ./clip2/1.png 1.284562e-01 .clip12.png,
identity VGG-Face_cosine img
0 ./clip2/3.PNG 3.330669e-16 .clip13.PNG,
identity VGG-Face_cosine img
0 ./clip2/4.PNG 0.0 .clip14.PNG
1 ./clip2/8.PNG 0.0 .clip14.PNG,
identity VGG-Face_cosine img
0 ./clip2/5.jpg -2.220446e-16 .clip15.jpg ]
I’ve checked type of output
type(res)
output
list
my aim is to convert this into pandas df
. By reading documentation what I’ve tried is
import pandas as pd
df_new = pd.DataFrame(res)
output I got
0 identity VGG-Face_cosine img 0 ./clip2/0.png 1.110223e-16 .clip1 .png 1 ./clip2/2.png 1.117194e-01 .clip1 .png 2 ./clip2/6.png 1.117194e-01 .clip1 .png 3 ./clip2/1.png 1.476002e-01 .clip1 .png
1 identity VGG-Face_cosine img 0 ./clip2/1.png 4.440892e-16 .clip11.png 1 ./clip2/2.png 1.284562e-01 .clip11.png 2 ./clip2/6.png 1.284562e-01 .clip11.png 3 ./clip2/0.png 1.476002e-01 .clip11.png
2 identity VGG-Face_cosine img 0 ./clip2/2.png -4.440892e-16 .clip12.png 1 ./clip2/6.png -4.440892e-16 .clip12.png 2 ./clip2/0.png 1.117194e-01 .clip12.png 3 ./clip2/1.png 1.284562e-01 .clip12.png
3 identity VGG-Face_cosine img 0 ./clip2/3.PNG 3.330669e-16 .clip13.PNG
4 identity VGG-Face_cosine img 0 ./clip2/4.PNG 0.0 .clip14.PNG 1 ./clip2/8.PNG 0.0 .clip14.PNG
5 identity VGG-Face_cosine img 0 ./clip2/5.jpg -2.220446e-16 .clip15.jpg
6 identity VGG-Face_cosine img 0 ./clip2/2.png -4.440892e-16 .clip16.png 1 ./clip2/6.png
........................................
output I’m expecting
identity VGG-Face_cosine img
0 ./clip2/0.png 1.110223e-16 .clip1 .png
1 ./clip2/2.png 1.117194e-01 .clip1 .png
2 ./clip2/6.png 1.117194e-01 .clip1 .png
3 ./clip2/1.png 1.476002e-01 .clip1 .png
identity VGG-Face_cosine img
0 ./clip2/1.png 4.440892e-16 .clip11.png
1 ./clip2/2.png 1.284562e-01 .clip11.png
2 ./clip2/6.png 1.284562e-01 .clip11.png
3 ./clip2/0.png 1.476002e-01 .clip11.png
identity VGG-Face_cosine img
0 ./clip2/2.png -4.440892e-16 .clip12.png
1 ./clip2/6.png -4.440892e-16 .clip12.png
2 ./clip2/0.png 1.117194e-01 .clip12.png
3 ./clip2/1.png 1.284562e-01 .clip12.png
identity VGG-Face_cosine img
0 ./clip2/3.PNG 3.330669e-16 .clip13.PNG
identity VGG-Face_cosine img
0 ./clip2/4.PNG 0.0 .clip14.PNG
1 ./clip2/8.PNG 0.0 .clip14.PNG
identity VGG-Face_cosine img
0 ./clip2/5.jpg -2.220446e-16 .clip15.jpg
Am i missing anything here?.
IIUC use concat
– seems you get list of DataFrames:
df = pd.concat(res)
Difference of your expected ouput is only one header.