2017-11-10 20 views
1

私はPythonの一部としてPandasを使用していますが、次の表があります。私は私の人生のために次のようにする方法を考え出すことはできません。どんな助けでも大歓迎です。Pandas 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 | 
+----------------+---+---+---+--+---+-----+---+--+---+-----+---+ 

インデックスでない場合は、代わりにdf.columns[0]level=0を変更します。

空の値がNaNであるという別の前提があります。ない場合は、グループ化する前にそれらを置き換える:それは美しく働いた

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

感謝を。あなたの答えが良かったことを示すために何かできるかどうか私に知らせてください。 –

+0

@NimayKulkarniあなたは私の答えを受け入れました。それは強大です。一度15人になると、あなたは彼らが役に立ったと思ったら、回答をupvoteすることもできます。ハッピーコーディング。 –