トランザクションデータベースのクエリセットを使用していますが、支払いの特定の日付を取得できなかったため、Pythonでsoneコードを記述して、日付を割り当てようとしています。私の最初の考えはExcelでそれを行うことでしたが、データセットは800,000行以上X 100列以上であるため、他の方法でこれを行うことは実用的ではありません。データセットの支払い列の一部の行に値があるため、支払い金額を含む行にのみ日付を含む日付列を追加する必要があります。
日付を格納するためにすべての列を作成しました。私の考えは、行をループして、その行にゼロより大きい値が含まれている場合は日付を割り当てることでした(列には0があり、NULL値があるため)。
df['Payment Date] = ''
for value in df:
if value > 0 :
df['Payment Date'] = '06/01/2019'
出力には、実際の値を持つ支払い日列の行に割り当てられた日付があると思います。
私が正しく理解している場合、あなたは(1)ゼロより大きい値でデータフレーム内の行を識別し、(2)それらすべての行の新しい列に特定の日付を割り当てようとしています。
まず、再現性と明確さのために、データセットを表すランダムデータを生成しましょう。
import pandas as pd
# Generate a random 5x4 Dataframe
df = pd.DataFrame(np.random.randn(5,4), columns=list('ABCD'))
# Set many of the values to zero
df[df > 0] = 0
ここで、目的の日付を格納するための新しい列を作成します。
df['Payment Date'] = ''
最後に、その列を、ゼロより大きい値を含むすべての行に必要な日付に設定します(これには、N / Aをスキップして、すべての行の合計がゼロより大きい必要があることに注意してください。これは、以下でテストする条件です)。
row_inds = df.sum(axis=1, skipna=True)>0
df.loc[row_inds, 'Payment Date'] = '06/01/2019'
それはあなたに望ましい結果を与えます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加