あなたの助けが必要です。
csvから作成された2つのデータフレームがあり、特定のフィールド/列の2つの違いとなる新しいデータフレームを返す必要があります。たとえば、df1のIDがdf2にない場合、df3は、df2にないdf1のすべての列と行を取得する必要があります。
df1列とdf2列は同一ではないことに注意してください。つまり、df1はdf2よりも多いまたは少ない列を持つことができますが、df3の列はd1の時点である必要があります。また、ID(df1から)とユーザーID(df2)の値が調整係数になり、フィールドのデータが共通の係数になりますが、実際のフィールド名は異なります。
以下の表が明確ではないため、事前にお詫び申し上げます。したがって、以下の例では、df1の最初の行がdf2にないため、df3にこの行が含まれている必要があります。完了したら、df3をcsvとして保存する必要があります。
DF1
売る-09-32000-TLTD-拒否された
購入-12-25000-GLtd-完了
販売-15-35000-HLtd-完了
DF2
購入-12-25000-GLtd-完了-良い評価
販売-15-35000-HLtd-完了-良い評価
よろしくお願いします
これまでのコード:
import pandas as pd
fileLocationDF1 = "BBG.csv"
fileLocationDF2 = "corp.csv"
createDf1 = pd.read_csv(fileLocationDF1, low_memory = False)
createDf2 = pd.read_csv(fileLocationDF2, engine='python')
役立つと思うisinメソッドを見つけましたが、問題は、「ユーザーID」列(df2)のデータフレームにスペースがあることです(csvの場合と同様)。
createDf1[createDf1.ID.isin(createDf2.columns[2].values)]
そして、私は以下のエラーが発生します
AttributeError: 'str' object has no attribute 'values'
ユーザーIDにスペースがあるため、isinメソッドで列[2]を渡しました
df2のユーザーIDがdf1のIDにない一意のセットを取得できるように、エラーとデータが読み取られない理由に対処するのを手伝ってください。
以下を参照してください-ハイライトされたものはDF2に欠けているものであり、df3でこれが欲しいです
CParserError: Error tokenizing data. C error: Buffer overflow caught - possible malformed input file.
私はします:
import pandas as pd
fileLocationDF1 = "BBG.csv"
fileLocationDF2 = "corp.csv"
createDf1 = pd.read_csv(fileLocationDF1, low_memory = False)
createDf2 = pd.read_csv(fileLocationDF2, engine='python')
# df3 will have createDf1 columns with ID's that are not in createDf2
# ~ means 'not' to the filter
# Acces the column via ['COLUMN NAME'] so you can put spaces into it ;)
df3 = createDf1[~createDf1['ID'].isin(createDf2['User ID'])]
これがお役に立てば幸いです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加