我有以下字典:
the_dictionary_list = {'Fondo': ['Oceano.png'],
'Cuerpo': ['Cuerpo_cangrejo.png'],
'Ojos': ['Antenas.png', 'Pico.png', 'Verticales.png'],
'Color': ['Amarillo.png', 'Blanco.png', 'Rojirosado.png', 'Turquesa.png', 'Verde_oscuro.png', 'Zapote.png'],
'Pinzas': ['None', 'Pinzitas.png', 'Pinzotas.png', 'Pinzota_pinzita.png'],
'Puas': ['None', 'Arena.png', 'Marron.png', 'Purpura.png', 'Verde.png']}
為了獲得每個可能的排列而不以特定順序重復(即笛卡爾積),我使用以下代碼:
import itertools as it
AllKeysNames = ['Fondo', 'Cuerpo', 'Ojos', 'Color', 'Pinzas', 'Puas']
Combinations = list(it.product(*(the_dictionary_list[Name] for Name in AllKeysNames)))
print(f'{Combinations}')
我怎樣才能讓上面的程式將每次迭代保存到一個資料幀中,例如它會拋出這樣的輸出:
Index | Permutations | FilePermutations
0 |Fondo Cuerpo Ojos Color Pinzas Puas|Oceano.png Cuerpo_cangrejo.png Antenas.png Amarillo.png None None
1 |Fondo Cuerpo Ojos Color Pinzas Puas|Oceano.png Cuerpo_cangrejo.png Antenas.png Amarillo.png None Arena.png
2 |Fondo Cuerpo Ojos Color Pinzas Puas|Oceano.png Cuerpo_cangrejo.png Antenas.png Amarillo.png None Marron.png
.
.
.
Permutations列中的資訊將保持不變,資料幀的索引長度為359
uj5u.com熱心網友回復:
添加joinforit.product然后加入 forPermutations列:
AllKeysNames = ['Fondo', 'Cuerpo', 'Ojos', 'Color', 'Pinzas', 'Puas']
new = [' '.join(x) for x in
it.product(*(the_dictionary_list[Name] for Name in AllKeysNames))]
df = pd.DataFrame({'Permutations':" ".join(AllKeysNames), 'FilePermutations':new})
print (df)
Permutations \
0 Fondo Cuerpo Ojos Color Pinzas Puas
1 Fondo Cuerpo Ojos Color Pinzas Puas
2 Fondo Cuerpo Ojos Color Pinzas Puas
3 Fondo Cuerpo Ojos Color Pinzas Puas
4 Fondo Cuerpo Ojos Color Pinzas Puas
.. ...
355 Fondo Cuerpo Ojos Color Pinzas Puas
356 Fondo Cuerpo Ojos Color Pinzas Puas
357 Fondo Cuerpo Ojos Color Pinzas Puas
358 Fondo Cuerpo Ojos Color Pinzas Puas
359 Fondo Cuerpo Ojos Color Pinzas Puas
FilePermutations
0 Oceano.png Cuerpo_cangrejo.png Antenas.png Ama...
1 Oceano.png Cuerpo_cangrejo.png Antenas.png Ama...
2 Oceano.png Cuerpo_cangrejo.png Antenas.png Ama...
3 Oceano.png Cuerpo_cangrejo.png Antenas.png Ama...
4 Oceano.png Cuerpo_cangrejo.png Antenas.png Ama...
.. ...
355 Oceano.png Cuerpo_cangrejo.png Verticales.png ...
356 Oceano.png Cuerpo_cangrejo.png Verticales.png ...
357 Oceano.png Cuerpo_cangrejo.png Verticales.png ...
358 Oceano.png Cuerpo_cangrejo.png Verticales.png ...
359 Oceano.png Cuerpo_cangrejo.png Verticales.png ...
[360 rows x 2 columns]
uj5u.com熱心網友回復:
IIUC,一種使用方式pandas.Series.str.cat:
df = pd.DataFrame(list(product(*the_dictionary_list.values())))
df = df.loc[:, 0].str.cat(df.loc[:, 1:], sep=" ").to_frame(name="FilePermutations")
df["Permutations"] = " ".join(the_dictionary_list)
print(df)
輸出:
FilePermutations \
0 Oceano.png Cuerpo_cangrejo.png Antenas.png Ama...
1 Oceano.png Cuerpo_cangrejo.png Antenas.png Ama...
2 Oceano.png Cuerpo_cangrejo.png Antenas.png Ama...
3 Oceano.png Cuerpo_cangrejo.png Antenas.png Ama...
4 Oceano.png Cuerpo_cangrejo.png Antenas.png Ama...
.. ...
355 Oceano.png Cuerpo_cangrejo.png Verticales.png ...
356 Oceano.png Cuerpo_cangrejo.png Verticales.png ...
357 Oceano.png Cuerpo_cangrejo.png Verticales.png ...
358 Oceano.png Cuerpo_cangrejo.png Verticales.png ...
359 Oceano.png Cuerpo_cangrejo.png Verticales.png ...
Permutations
0 Fondo Cuerpo Ojos Color Pinzas Puas
1 Fondo Cuerpo Ojos Color Pinzas Puas
2 Fondo Cuerpo Ojos Color Pinzas Puas
3 Fondo Cuerpo Ojos Color Pinzas Puas
4 Fondo Cuerpo Ojos Color Pinzas Puas
.. ...
355 Fondo Cuerpo Ojos Color Pinzas Puas
356 Fondo Cuerpo Ojos Color Pinzas Puas
357 Fondo Cuerpo Ojos Color Pinzas Puas
358 Fondo Cuerpo Ojos Color Pinzas Puas
359 Fondo Cuerpo Ojos Color Pinzas Puas
[360 rows x 2 columns]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/395689.html
