2017-11-28 13 views
0

私はPython pandasの新機能です。この質問は非常に簡単です。私は組み合わせこれらのリストを作成し、データフレームにそれを表示したいネストされたループに基づいてPythonデータフレームを作成する

A = ['A','B','C'] 
M = ['1','2','3'] 
F = ['plus','minus','square'] 

: は、私は3つのリストを持っています。 私は私が(データフレームで)このような出力を取得する方法を、混乱list.append

new_list = [] 
for i in A: 
    new_list.append(i) 
    for j in (M): 
     new_list.append(j) 
print(new_list) 
['A', '1', '2', '3', 'B', '1', '2', '3', 'C', '1', '2', '3'] 

を使用しようとしました:あなたはすべてのリストを作成したいかのように思え

enter image description here

+1

あなたは 'pd.DataFrameを(使用することができます(製品(A、M、F))、列= ['A'、 'M'、 'F']) ' –

+0

ここでの「製品」の意味は何ですか? – user46543

+0

このようにitertoolsから製品をインポートする必要があります: 'from itertools import product' –

答えて

2

すべての可能な順列のうちの1つ。あなたはitertoolsとpandasでこれを行うことができます。 Itertoolsは、Pythonにネイティブライブラリです:

import pandas as pd 
import itertools 

A = ['A','B','C'] 
M = ['1','2','3'] 
F = ['plus','minus','square'] 

df = pd.DataFrame(list(itertools.product(A,M,F)), columns=['A','M','F']) 
print(df) 

出力:

A M  F 
0 A 1 plus 
1 A 1 minus 
2 A 1 square 
3 A 2 plus 
4 A 2 minus 
5 A 2 square 
6 A 3 plus 
7 A 3 minus 
8 A 3 square 
9 B 1 plus 
10 B 1 minus 
11 B 1 square 
12 B 2 plus 
13 B 2 minus 
14 B 2 square 
15 B 3 plus 
16 B 3 minus 
17 B 3 square 
18 C 1 plus 
19 C 1 minus 
20 C 1 square 
21 C 2 plus 
22 C 2 minus 
23 C 2 square 
24 C 3 plus 
25 C 3 minus 
26 C 3 square 
1

必要なものは、三組のデカルト積である:

import pandas as pd 
from itertools import product 

pd.DataFrame(list(product(A,M,F)), columns=['A', 'M', 'F']) 
関連する問題