我正在尝试遍历包含一些数字的列表,并希望保存到Dataframe。
但是在尝试set_values
和concat
之后(这更加困难)。我无法得到合适的分辨率。另一个问题是它必须在阅读“结束”之前停止......
列表和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 |
答案 0 :(得分:3)
对我来说,concat
是最后的选择。它不可避免地会变得毛茸茸。并且,对于它的价值,我认为我从未使用set_value
- 它很少必须如此精细。
这是一个解决方案。
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
(如果-1
对您来说不熟悉,请参阅documentation for reshape。)