我有一个目录,每个文件夹内有许多文件夹(images folder & labels text
),我想通过concatnating文件夹名称与图像名称,使它们成为唯一的名称,将它们组合成一个 Dataframe 文件。我的目录的结构如下:
$ tree
.
├── sample
│ ├---- folder_1 ----|-- -- train.jsonl
| | |----- imgs
| | | └───├── 0.png
| | | └── 1.png
| | | └── 2.png
| | | └── 3.png
.. .. ... ...
| | | └── n.png
│ ├---- folder_2 ----|-- -- train.jsonl
| | |----- imgs
| | | └───├── 0.png
| | | └── 1.png
| | | └── 2.png
| | | └── 3.png
.. .. ... ...
| | | └── n.png
│ ├---- folder_3 ----|-- -- train.jsonl
| | |----- imgs
| | | └───├── 0.png
| | | └── 1.png
| | | └── 2.png
| | | └── 3.png
.. .. ... ...
| | | └── n.png
在每个文件夹中,train.jsonl
文件包含图像名称和相应文本,例如folder_1
{"file_name": "0.png", "text": "Hello"}
{"file_name": "1.png", "text": "there"}
在其他情况下也是folder_2
:
{"file_name": "0.png", "text": "Hi"}
{"file_name": "1.png", "text": "there from the second dir"}
....
我想更新file_name
路径阅读那些json行与Pandas或python和连接父目录与图像名称:
import pandas as pd
import os
df1 = pd.read_json(path_or_buf = 'sample/folder_1/train.jsonl',lines=True,)
df2 = pd.read_json(path_or_buf = sample/folder_2/train.jsonl,lines=True,)
df3 = pd.read_json(path_or_buf = sample/folder_3/train.jsonl,lines=True,)
df4 = pd.read_json(path_or_buf = sample/folder_4/train.jsonl,lines=True,)
df = df1+df2+df3+df4 + ....
因此,预期df应该如下所示:
file_name text
0 sample/folder_1/0.png Hello
1 sample/folder_1/1.png there
2 sample/folder_2/0.png Hi
3 sample/folder_2/1.png there from the second dir
.......... ........
为了使它们唯一,我们可以循环通过一个数据框文件组合所有它们
1条答案
按热度按时间i7uq4tfw1#