1

いくつかの数字を含むリストを反復処理して、データフレームに保存したいと考えています。

set_valuesただし、試した後concat(これはさらに困難です)。適切な解像度を取得できません。もう1つの問題は、「END」を読む前に停止しなければならないことです...

リストと DataFrame を以下に示します。

words= ['302', '1208', '1208', '0', '179', '1208', '1208', '0', '904', '233', '233', '0', '***END', 'OF', 'REPORT***']

dd = pd.DataFrame(columns=("AA","BB","CC","DD"))

そして、私が今まで使っていたコード:

for r in range(40,48,4):
    for s in range(41,49,4):
        for t in range(42,50,4):
            for z in range(43,51,4):
                dd = dd.set_value(len(dd),'AA',words[r])
                dd = dd.set_value(len(dd),'BB',words[s])
                dd = dd.set_value(len(dd),'CC',words[t])
                dd = dd.set_value(len(dd),'DD',words[z])

以下のようなものを返したい:

AA | BB | CC | DD |    
302|1208|1208|0   |
4

1 に答える 1

3

私にとってconcatは、最後の手段です。やむを得ず毛むくじゃらになることがあります。そして、価値のあることですが、私はこれまで使用したことがないと思いますset_value-これほど細かくする必要があることはめったにありません。

これが1つの解決策です。

In [10]: numbers = np.array(words[:words.index('***END')]).astype('int')

In [11]: columns = ['AA', 'BB', 'CC', 'DD']

In [12]: dd = DataFrame(numbers.reshape(-1, 4), columns=columns)

In [13]: dd
Out[13]: 
    AA    BB    CC  DD
0  302  1208  1208   0
1  179  1208  1208   0
2  904   233   233   0

(これが初めての場合は、 reshape のドキュメントを-1参照してください。)

于 2013-06-11T22:05:17.893 に答える