Ich habe zwei Datenrahmen:Schlüssel des ersten Datenrahmens, der in zweiten und Flagge angezeigt, die Tatsache
data = {
'year': ['11:23:19', '11:23:19', '11:24:19', '11:25:19', '11:25:19', '11:23:19', '11:23:19', '11:23:19', '11:23:19', '11:23:19'],
'store_number': ['1944', '1945', '1946', '1948', '1948', '1949', '1947', '1948', '1949', '1947'],
'retailer_name': ['Walmart', 'Walmart', 'CRV', 'CRV', 'CRV', 'Walmart', 'Walmart', 'CRV', 'CRV', 'CRV'],
'amount': [5, 5, 8, 6, 1, 5, 10, 6, 12, 11],
'id': [10, 10, 11, 11, 11, 10, 10, 11, 11, 10]
}
df1 = pd.DataFrame(data, columns = ['retailer_name', 'store_number', 'year', 'amount', 'id'])
df1.set_index(['retailer_name', 'store_number', 'year'], inplace = True)
retailer_name store_number year amount id
Walmart 1944 11:23:19 5 10
1945 11:23:19 5 10
CRV 1946 11:24:19 8 11
1948 11:25:19 6 11
11:25:19 1 11
Walmart 1949 11:23:19 5 10
1947 11:23:19 10 10
CRV 1948 11:23:19 6 11
1949 11:23:19 12 11
1947 11:23:19 11 10
Und die zweite:
data2 = {
'year': ['11:23:19', '11:23:19', '13:23:19'],
'store_number': [1944, 1947, 1978],
'retailer_name': ['Walmart', 'CRV', 'CRV12'],
'amount': [5, 11, 11]
}
df2 = pd.DataFrame(data2, columns = ['retailer_name', 'store_number', 'year', 'amount'])
df2.set_index(['retailer_name', 'store_number', 'year'], inplace = True)
retailer_name store_number year amount
Walmart 1944 11:23:19 5
CRV 1947 11:23:19 11
CRV12 1978 13:23:19 11
Wie kann ich die Schlüssel von DF2 überprüfen, die in df1 erscheinen und Flagge 1
auf diejenigen, die erscheinen und 0
wenn nicht:
retailer_name store_number year amount flag
Walmart 1944 11:23:19 5 1
CRV 1947 11:23:19 11 1
CRV12 1978 13:23:19 11 0
@NightWalker Sie können auch 'df2.index.isin (df1.index)' anstelle von 'intersection' verwenden. – ptrj