2017-11-10 102 views
1

我使用熊貓作爲Python的一部分,我有下表。我不能爲我的生活弄清楚如何做到以下幾點。任何幫助將非常感激。結合熊貓DataFrame中的多行數據

我有一個數據表,有很多重複的時間點。然而,每個重複的時間點都有不同的行填充部分。我想將所有時間點合併到一個包含所有信息的行中。

我不想總結列。 我不想連接列。

我想獲取某個列中單個時間點的第一個值,並忽略同一時間點的該列中的任何附加值。

表格應該使這更清晰。

+----------------+---+---+---+--+---+---+---+--+---+---+---+ 
| 09/07/20171310 | | 1 | | | | | | | | | | 
| 09/07/20171310 | | | 1 | | | | | | | | | 
| 09/07/20171310 | 3 | | | | | | | | | | | 
| 09/07/20171310 | | | | | | | | | | | 1 | 
| 09/07/20171310 | | | | | | | 1 | | | | | 
| 09/07/20171310 | | | | | | | | | 2 | | | 
| 09/07/20171310 | | | | | 2 | | | | | | | 
| 09/07/20171920 | | | | | | | | | | 1 | | 
| 09/07/20171920 | | | | | | | | | | | 1 | 
| 09/07/20171920 | | | | | | | 1 | | | | | 
| 09/07/20171920 | | | | | | 1 | | | | | | 
| 09/07/20171920 | | | | | | | | | 3 | | | 
| 09/07/20171920 | | | | | 3 | | | | | | | 
| 09/07/20171920 | 6 | | | | | | | | | | | 
| 09/07/20171920 | | | 1 | | | | | | | | | 
| 09/07/20171920 | | 4 | | | | | | | | | | 
+----------------+---+---+---+--+---+---+---+--+---+---+---+ 

我想有

+----------------+---+---+---+--+---+---+---+--+---+---+---+ 
| 09/07/20171310 | 3 | 1 | 1 | | 2 | | 1 | | 2 | | 1 | 
| 09/07/20171920 | 6 | 4 | 1 | | 3 | 1 | 1 | | 3 | 1 | 1 | 
+----------------+---+---+---+--+---+---+---+--+---+---+---+ 

我希望得到任何幫助。

回答

0

假定所述時間戳是索引,使用groupby + max

df.groupby(level=0).max().fillna('') 

+----------------+---+---+---+--+---+-----+---+--+---+-----+---+ 
| 09/07/20171310 | 3 | 1 | 1 | | 2 |  | 1 | | 2 |  | 1 | 
| 09/07/20171920 | 6 | 4 | 1 | | 3 | 1.0 | 1 | | 3 | 1.0 | 1 | 
+----------------+---+---+---+--+---+-----+---+--+---+-----+---+ 

如果不是索引,更改level=0df.columns[0]代替。

此處的另一個假設是您的空值爲NaN s。如果沒有,以前分組替換它們

df = df.replace('^\s*$', np.nan, regex=True) 
+0

感謝它美麗的工作。林新本網站,所以請讓我知道,如果有什麼我可以做,以表明你的答案是好的 –

+0

@NimayKulkarni你已經接受了我的答案,所以這是很大的。一旦你達到15代表,如果你覺得他們有幫助,你也可以提出答案。快樂的編碼。 –