パンダデータフレーム、最大値を見つけて、行全体ではなく、隣接する列の値を返します

デイブ

パンダは初めてなので、明らかな解決策があるとすみません... 2列しかないCSVをインポートし、3列目を作成しました。上位10行とヘッダーのスクリーンショットは次のとおりです。DataFrameのスクリーンショット

['Amount Changed']列で最小値と最大値を見つける方法を理解しましたが、最小値と最大値に関連付けられた日付を取得する必要がありますが、インデックスと['Profit / Loss']は取得しません。iloc、loc、groupbyについて読んでみました-再び使用できる単一の値(この場合は日付)を返すようにそれらのいずれも取得できません。

私の目標は、['Amount Changed']の最大値と同じ行にあるが、['Date']列の日付に関連付けられている新しい変数 'Gi_Date'を作成することです。

印刷ステートメントで使用したり、txtファイルに書き込んだりできるように、変数を分離しておくようにしています。

import os
import csv
import pandas as pd
import numpy as np

#path for CSV file
csvpath = ("budget_data.csv")
#Read CSV into Panadas and give it a variable name Bank_pd
Bank_pd = pd.read_csv(csvpath, parse_dates=True)

#Number of month records in the CSV
Months = Bank_pd["Date"].count()

#Total amount of money captured in the data converted to currency
Total_Funds = '${:.0f}'.format(Bank_pd["Profit/Losses"].sum())

#Determine the amount of increase or decrease from the previous month
AmtChange = Bank_pd["Profit/Losses"].diff()
Bank_pd["Amount Changed"] = AmtChange

#Identify the greatest positive change
GreatestIncrease = '${:.0f}'.format(Bank_pd["Amount Changed"].max())
Gi_Date = Bank_pd[Bank_pd["Date"] == GreatestIncrease]

#Identify the greatest negative change
GreatestDecrease =  '${:.0f}'.format(Bank_pd["Amount Changed"].min())
Gd_Date = Bank_pd[Bank_pd['Date'] == GreatestDecrease]

print(f"Total Months: {Months}")
print(f"Total: {Total_Funds}")
print(f"Greatest Increase in Profits: {Gi_Date}  ({GreatestIncrease})")
print(f"Greatest Decrease in Profits: {Gd_Date} ({GreatestDecrease})")

スクリプトをgitbashで実行すると、エラーが発生しなくなったので、次のように表示される日付を表示するのではなく、近づいていると思います。

$ python PyBank.py
Total Months: 86
Total: $38382578
Greatest Increase in Profits: Empty DataFrame
Columns: [Date, Profit/Losses, Amount Changed]
Index: []  ($1926159)
Greatest Decrease in Profits: Empty DataFrame
Columns: [Date, Profit/Losses, Amount Changed]
Index: [] ($-2196167)

私はそれをこのように印刷したい:

$ python PyBank.py
Total Months: 86
Total: $38382578
Greatest Increase in Profits: Feb-2012  ($1926159)
Greatest Decrease in Profits: Sept-2013 ($-2196167)

元のDataFrameの1年分の価値は次のとおりです。

bank_pd = pd.DataFrame({'Date':['Jan-10', 'Feb-10', 'Mar-10', 'Apl-10', 'May-10', 'Jun-10', 'Jul-10', 'Aug-10', 'Sep-10', 'Oct-10', 'Nov-10', 'Dec-10'],
                        'Profit/Losses':[867884, 984655, 322013, -69417, 310503, 522857, 1033096, 604885, -216386, 477532, 893810, -80353]})

サンプルdfで期待される出力は次のようになります。合計月数:12合計資金:$ 5651079利益の最大の増加:10月10日($ 693918)利益の最大の減少:12月10日($ -974163)

上からのサンプルデータフレームにもエラーがありました。すばやく入力したときに1か月間欠落していましたが、現在は修正されています。

ありがとう!

ヴィジャイリンガ

使用されている変数にいくつかの不具合が見られます。

Bank_pd["Amount Changed"] = AmtChange

上記のステートメントは、実際にはデータフレームを「AmountChanged」列に置き換えています。このステートメントの後、この列を任意の操作に使用できます。

以下は更新されたコードであり、新しく追加された行を強調しています。さらにフォーマットを追加できます。

import pandas as pd


csvpath = ("budget_data.csv")

Bank_pd = pd.read_csv(csvpath, parse_dates=True)
inp_bank_pd = pd.DataFrame(Bank_pd)

Months = Bank_pd["Date"].count()
Total_Funds = '${:.0f}'.format(Bank_pd["Profit/Losses"].sum())

AmtChange = Bank_pd["Profit/Losses"].diff()
GreatestIncrease = Bank_pd["Amount Changed"].max()

Gi_Date = inp_bank_pd.loc[Bank_pd["Amount Changed"] == GreatestIncrease]

print(Months)
print(Total_Funds)
print(Gi_Date['Date'].values[0])
print(GreatestIncrease)

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パンダデータフレーム、最大値を見つけて、行全体ではなく、隣接する列の値を返します

分類Dev

パンダは列を反復処理してテキストの一致を見つけます。見つかったら、両方のデータフレームで隣接する行の値を比較します<>

分類Dev

列または行に基づくのではなく、パンダデータフレーム全体から最大値を返す

分類Dev

2つのパンダデータフレームで一致する値を見つけて、一致する行から値を返します

分類Dev

パンダデータフレーム内のすべての最大値の平均を見つけるために、14日単位で繰り返します

分類Dev

パンダデータフレームは、次の数行から最大値を見つけます

分類Dev

パンダデータフレーム:2つの隣接する行の値を比較し、列を追加します

分類Dev

パンダは1つの列の値を別のデータフレームの列と比較し、一致する行を見つけます

分類Dev

パンダは、値のリストを指定して、データフレーム列で最も近い値のインデックスを見つけます

分類Dev

適用してパンダデータフレームの他の列の列値を見つけますか?

分類Dev

パンダのデータフレームで欠落している値の中から最も近い有効な数値を見つけます

分類Dev

パンダを使用して、別の列がnullでない場合に、データフレームを使用して列の値を見つける方法は?

分類Dev

パンダ:データフレーム内のすべての列の最大最小行を見つける

分類Dev

パンダ:データフレーム内のすべての列の最大最小行を見つける

分類Dev

特定の列の値が少なくとも0.5であるパンダデータフレームで5つの連続した行を見つけるにはどうすればよいですか?

分類Dev

パンダ:データフレームのすべての列で最大範囲を見つけます

分類Dev

データフレーム内の2つの列の最大値を返します(パンダ)

分類Dev

1つの列から重複する値を使用して、パンダデータフレームの行全体を削除します

分類Dev

列の最大値を見つけ、パンダを使用して対応する行の値を返します

分類Dev

列の最大値を見つけ、パンダを使用して対応する行の値を返します

分類Dev

なし、Python3.5もあるパンダデータフレームで最大値を見つける

分類Dev

データフレームの行で値が負になる場所を見つけ、対応する列を返します

分類Dev

パンダのデータフレームを列ではなく行でランク付けしますか?

分類Dev

リストのパンダデータフレーム列で最大値を見つける

分類Dev

パンダのデータフレームで非数値の行を見つけますか?

分類Dev

データフレームのすべての列で最大の値を3つ見つけて、インデックス番号pythonを取得します

分類Dev

グループパンダのデータフレームで最大値を持つ行を抽出します

分類Dev

データフレームで値を見つけ、パンダの新しい列に前の列の値を追加します

分類Dev

Pythonパンダ:別のデータフレームで値を見つけて置き換えます

Related 関連記事

  1. 1

    パンダデータフレーム、最大値を見つけて、行全体ではなく、隣接する列の値を返します

  2. 2

    パンダは列を反復処理してテキストの一致を見つけます。見つかったら、両方のデータフレームで隣接する行の値を比較します<>

  3. 3

    列または行に基づくのではなく、パンダデータフレーム全体から最大値を返す

  4. 4

    2つのパンダデータフレームで一致する値を見つけて、一致する行から値を返します

  5. 5

    パンダデータフレーム内のすべての最大値の平均を見つけるために、14日単位で繰り返します

  6. 6

    パンダデータフレームは、次の数行から最大値を見つけます

  7. 7

    パンダデータフレーム:2つの隣接する行の値を比較し、列を追加します

  8. 8

    パンダは1つの列の値を別のデータフレームの列と比較し、一致する行を見つけます

  9. 9

    パンダは、値のリストを指定して、データフレーム列で最も近い値のインデックスを見つけます

  10. 10

    適用してパンダデータフレームの他の列の列値を見つけますか?

  11. 11

    パンダのデータフレームで欠落している値の中から最も近い有効な数値を見つけます

  12. 12

    パンダを使用して、別の列がnullでない場合に、データフレームを使用して列の値を見つける方法は?

  13. 13

    パンダ:データフレーム内のすべての列の最大最小行を見つける

  14. 14

    パンダ:データフレーム内のすべての列の最大最小行を見つける

  15. 15

    特定の列の値が少なくとも0.5であるパンダデータフレームで5つの連続した行を見つけるにはどうすればよいですか?

  16. 16

    パンダ:データフレームのすべての列で最大範囲を見つけます

  17. 17

    データフレーム内の2つの列の最大値を返します(パンダ)

  18. 18

    1つの列から重複する値を使用して、パンダデータフレームの行全体を削除します

  19. 19

    列の最大値を見つけ、パンダを使用して対応する行の値を返します

  20. 20

    列の最大値を見つけ、パンダを使用して対応する行の値を返します

  21. 21

    なし、Python3.5もあるパンダデータフレームで最大値を見つける

  22. 22

    データフレームの行で値が負になる場所を見つけ、対応する列を返します

  23. 23

    パンダのデータフレームを列ではなく行でランク付けしますか?

  24. 24

    リストのパンダデータフレーム列で最大値を見つける

  25. 25

    パンダのデータフレームで非数値の行を見つけますか?

  26. 26

    データフレームのすべての列で最大の値を3つ見つけて、インデックス番号pythonを取得します

  27. 27

    グループパンダのデータフレームで最大値を持つ行を抽出します

  28. 28

    データフレームで値を見つけ、パンダの新しい列に前の列の値を追加します

  29. 29

    Pythonパンダ:別のデータフレームで値を見つけて置き換えます

ホットタグ

アーカイブ