簡體   English   中英

將Pandas DataFrame轉換為DataFrames列表

[英]Transforming Pandas DataFrame into List of DataFrames

我有看起來像這樣的數據:

1.00 1.00 1.00
3.23 4.23 0.33
1.23 0.13 3.44
4.55 12.3 14.1
2.00 2.00 2.00
1.21 1.11 1.11
3.55 5.44 5.22
4.11 1.00 4.00

它以4的塊進來。該塊的第一行是索引,其余的是值。 塊總是排成4行,但列數可以大於3。

例如:

1.00 1.00 1.00 <- 1st chunk, the index = 1

3.23 4.23 0.33  <- values
1.23 0.13 3.44  <- values
4.55 12.3 14.1  <- values

我上面的示例僅包含2個塊,但實際上可以包含更多塊。

我想要做的是創建一個數據幀字典,以便可以逐塊處理它們。 即從此:

In [1]: import pandas as pd

In [2]:  df = pd.read_table("http://dpaste.com/29R0BSS.txt",header=None, sep = " ")

In [3]: df
Out[3]:
      0      1      2
0  1.00   1.00   1.00
1  3.23   4.23   0.33
2  1.23   0.13   3.44
3  4.55  12.30  14.10
4  2.00   2.00   2.00
5  1.21   1.11   1.11
6  3.55   5.44   5.22
7  4.11   1.00   4.00

進入數據幀列表,以便我可以執行以下操作(我可以手動執行此操作):

>> # Let's call new data frame  `nd`.
>> nd[1]
>>     0      1      2
0  3.23   4.23   0.33
1  1.23   0.13   3.44
2  4.55  12.30  14.10

有很多方法可以做到這一點。 我傾向於使用groupby ,例如

>>> grouped = df.groupby(np.arange(len(df)) // 4)
>>> d = {v.iloc[0][0]: v.iloc[1:].reset_index(drop=True) for k,v in grouped}
>>> for k,v in d.items():
...     print(k)
...     print(v)
...     
1.0
      0      1      2
0  3.23   4.23   0.33
1  1.23   0.13   3.44
2  4.55  12.30  14.10
2.0
      0     1     2
0  1.21  1.11  1.11
1  3.55  5.44  5.22
2  4.11  1.00  4.00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM