出力を並べ替えることなく、パンダのデータフレームから一意の値を出力します

G_Endeavour

データを並べ替えずにデータフレームの一意の値を出力する方法に関して、いくつかの投稿が行われていることを知っています。

私は何度もこれらのメソッドを実装しようとしましたが、問題は問題のデータフレームがどのように定義されているかに関係していると思います。

基本的には、「C」という名前のデータフレームを調べて、現在保存されている順序を変更せずに、「C1」という名前の新しいデータフレームに一意の値を出力したいと思います。

私が現在使用している行は次のとおりです。

C1 = pd.DataFrame(np.unique(C))

ただし、これは昇順のリストを返します(ただし、重複を削除した場合にのみリストの順序を保持したいだけです)。

繰り返しになりますが、私のコードを見て首を横に振る上級ユーザーに謝罪します-私はまだ学んでいます!そして、はい、私はこの問題を解決するために多くの方法を試しました(Cデータフレームの再定義、出力をリストに変換するなど)、残念ながら役に立たなかったので、これはPythonの神々への助けを求める私の叫びです。CとC1の両方をデータフレームとして定義しました。これは、これらがデータを格納するのに最適なデータ構造であり、後で呼び出して使用できるようにするためです。さらに、に含まれるデータに影響を与えずに列に名前を付けると非常に便利です。データフレーム)。

もう一度、あなたの助けをいただければ幸いです。

F0 = ('08/02/2018','08/02/2018',50)
F1 = ('08/02/2018','09/02/2018',52)
F2 = ('10/02/2018','11/02/2018',46)
F3 = ('12/02/2018','16/02/2018',55)
F4 = ('09/02/2018','28/02/2018',48)
F_mat = [[F0,F1,F2,F3,F4]]
F_test = pd.DataFrame(np.array(F_mat).reshape(5,3),columns=('startdate','enddate','price'))

#convert string dates into DateTime data type
F_test['startdate'] = pd.to_datetime(F_test['startdate'])
F_test['enddate'] = pd.to_datetime(F_test['enddate'])

#convert datetype to be datetime type for columns startdate and enddate
F['startdate'] = pd.to_datetime(F['startdate'])
F['enddate'] = pd.to_datetime(F['enddate'])

#create contract duration column
F['duration'] = (F['enddate'] - F['startdate']).dt.days + 1

#re-order the F matrix by column 'duration', ensure that the bootstrapping 
#prioritises the shorter term contracts 
F.sort_values(by=['duration'], ascending=[True])

# create prices P
P = pd.DataFrame()
for index, row in F.iterrows():
    new_P_row = pd.Series()
    for date in pd.date_range(row['startdate'], row['enddate']):
        new_P_row[date] = row['price']
    P = P.append(new_P_row, ignore_index=True)

P.fillna(0, inplace=True)

#create C matrix, which records the unique day prices across the observation interval
C = pd.DataFrame(np.zeros((1, intNbCalendarDays)))
C.columns = tempDateRange 

#create the Repatriation matrix, which records the order in which contracts will be 
#stored in the A matrix, which means that once results are generated 
#from the linear solver, we know exactly which CalendarDays map to 
#which columns in the results array
#this array contains numbers from 1 to NbContracts
R = pd.DataFrame(np.zeros((1, intNbCalendarDays)))
R.columns = tempDateRange

#define a zero filled matrix, P1, which will house the dominant daily prices 
P1 = pd.DataFrame(np.zeros((intNbContracts, intNbCalendarDays)))
#rename columns of P1 to be the dates contained in matrix array D
P1.columns = tempDateRange 

#create prices in correct rows in P
for i in list(range(0, intNbContracts)):
    for j in list(range(0, intNbCalendarDays)):
        if (P.iloc[i, j] != 0 and C.iloc[0,j] == 0) :
            flUniqueCalendarMarker = P.iloc[i, j]
            C.iloc[0,j] = flUniqueCalendarMarker
            P1.iloc[i,j] = flUniqueCalendarMarker
            R.iloc[0,j] = i
            for k in list(range(j+1,intNbCalendarDays)):
                if (C.iloc[0,k] == 0 and P.iloc[i,k] != 0):
                    C.iloc[0,k] = flUniqueCalendarMarker
                    P1.iloc[i,k] = flUniqueCalendarMarker
                    R.iloc[0,k] = i
        elif (C.iloc[0,j] != 0 and P.iloc[i,j] != 0):
            P1.iloc[i,j] = C.iloc[0,j]

#convert C dataframe into C_list, in prepataion for converting C_list
#into a unique, order preserved list
C_list = C.values.tolist()

#create C1 matrix, which records the unique day prices across unique days in the observation period
C1 = pd.DataFrame(np.unique(C))
いたずら書き

使用DataFrame.duplicatedは()あなたのデータフレームは重複が含まれているかいないかどうかを確認してください。はいの場合は、DataFrame.drop_duplicate()を試すことができます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パンダのデータフレームを数値列で並べ替えようとしていますが、奇妙な出力が得られます

分類Dev

パンダのデータフレームに一意の値を出力します

分類Dev

Pandasデータフレームを並べ替えて、一意のエントリを保存します

分類Dev

並べ替えることなく、特定の列に基づいてテキストファイルから一意のデータをフィルタリングします

分類Dev

一意の値に基づいて2列のデータフレームを並べ替えます

分類Dev

並べ替えられたパンダのデータフレームは、フォーマットに応じて異なる値を返します

分類Dev

特定の値に基づいてデータフレームをフィルタリングするだけでなく、パンダを使用して一意の識別子の他のすべての値を保持する方法はありますか?

分類Dev

パンダデータフレームの列から特定の値を並べ替える

分類Dev

データを並べ替えることなく、一意の結果のみを取得するにはどうすればよいですか?

分類Dev

パンダの一意の値ごとに1つのデータフレームを作成します

分類Dev

一意の並べ替え:出力を同じファイルにリダイレクトします

分類Dev

一意の並べ替え:出力を同じファイルにリダイレクトします

分類Dev

パンダはデータフレームをグループ化し、列の値で並べ替えます

分類Dev

一意のキーを保持しながら、辞書データを値で並べ替える

分類Dev

前の行の値でデータフレームを並べ替えることはできますか?

分類Dev

パンダのデータフレームシリーズを月と年で並べ替えますか?

分類Dev

列の並べ替えに応じて、パンダデータフレームのスライスから値を変更します

分類Dev

一意の値をフィルタリングし、AからZのExcelVBAに並べ替えます

分類Dev

パンダデータフレームのすべての列で一意の値を取得する方法

分類Dev

パンダはデータフレームの行を並べ替えます

分類Dev

パンダデータフレーム内のすべての一意の行の数を取得します

分類Dev

2つの列を並べ替え、パンダを使用してデータフレームから並べ替えられた値の新しい列を作成します

分類Dev

パンダ、データフレーム内の一意の値を新しい値に置き換えますか?

分類Dev

パンダの列(ilocでスライス)をメインデータフレームとして並べ替える方法はありますか?

分類Dev

for inloopパンダフレームから一意の値を印刷する

分類Dev

文字列値の列に従ってパンダのデータフレーム行を並べ替えます

分類Dev

一意のラベルに対応する値をパンダデータフレームの値のリストとして追加します

分類Dev

一意の値と列の値に基づいて、データフレームから行をランダムに描画します

分類Dev

パンダの一意の値に従って列を並べ替える方法はありますか?

Related 関連記事

  1. 1

    パンダのデータフレームを数値列で並べ替えようとしていますが、奇妙な出力が得られます

  2. 2

    パンダのデータフレームに一意の値を出力します

  3. 3

    Pandasデータフレームを並べ替えて、一意のエントリを保存します

  4. 4

    並べ替えることなく、特定の列に基づいてテキストファイルから一意のデータをフィルタリングします

  5. 5

    一意の値に基づいて2列のデータフレームを並べ替えます

  6. 6

    並べ替えられたパンダのデータフレームは、フォーマットに応じて異なる値を返します

  7. 7

    特定の値に基づいてデータフレームをフィルタリングするだけでなく、パンダを使用して一意の識別子の他のすべての値を保持する方法はありますか?

  8. 8

    パンダデータフレームの列から特定の値を並べ替える

  9. 9

    データを並べ替えることなく、一意の結果のみを取得するにはどうすればよいですか?

  10. 10

    パンダの一意の値ごとに1つのデータフレームを作成します

  11. 11

    一意の並べ替え:出力を同じファイルにリダイレクトします

  12. 12

    一意の並べ替え:出力を同じファイルにリダイレクトします

  13. 13

    パンダはデータフレームをグループ化し、列の値で並べ替えます

  14. 14

    一意のキーを保持しながら、辞書データを値で並べ替える

  15. 15

    前の行の値でデータフレームを並べ替えることはできますか?

  16. 16

    パンダのデータフレームシリーズを月と年で並べ替えますか?

  17. 17

    列の並べ替えに応じて、パンダデータフレームのスライスから値を変更します

  18. 18

    一意の値をフィルタリングし、AからZのExcelVBAに並べ替えます

  19. 19

    パンダデータフレームのすべての列で一意の値を取得する方法

  20. 20

    パンダはデータフレームの行を並べ替えます

  21. 21

    パンダデータフレーム内のすべての一意の行の数を取得します

  22. 22

    2つの列を並べ替え、パンダを使用してデータフレームから並べ替えられた値の新しい列を作成します

  23. 23

    パンダ、データフレーム内の一意の値を新しい値に置き換えますか?

  24. 24

    パンダの列(ilocでスライス)をメインデータフレームとして並べ替える方法はありますか?

  25. 25

    for inloopパンダフレームから一意の値を印刷する

  26. 26

    文字列値の列に従ってパンダのデータフレーム行を並べ替えます

  27. 27

    一意のラベルに対応する値をパンダデータフレームの値のリストとして追加します

  28. 28

    一意の値と列の値に基づいて、データフレームから行をランダムに描画します

  29. 29

    パンダの一意の値に従って列を並べ替える方法はありますか?

ホットタグ

アーカイブ