В Pandas
я пытаюсь добавить новый столбец/обновить существующий столбец в фрейм данных (DF2) со значением из другого фрейма данных (DF1). Я могу думать о том, как сделать это в SQL
Как обновить столбец в Pandas Dataframe
UPDATE DF2
SET DF2['Column'] = DF1['Column']
FROM DF2
JOIN DF1 ON DF1['NonIndexColumn'] = DF2['NonIndexColumn']
Пример данных:
d =[{'CustomerID': 1, 'SignUpDate': '2014-01-01'}, {'CustomerID': 2, 'SignUpDate': '2014-02-01'}, {'CustomerID': 3, 'SignUpDate': '2014-03-01'}, {'CustomerID': 4, 'SignUpDate': '2014-04-01'}]
DF1 = pd.DataFrame(data=d)
d2 = [{'OrderID': 1, 'CustomerID': 1, 'OrderDate': '2014-01-15'}, {'OrderID': 2, 'CustomerID': 1, 'OrderDate': '2014-01-15'}, {'OrderID': 3, 'CustomerID': 2, 'OrderDate': '2014-03-28'}, {'OrderID': 4, 'CustomerID': 1, 'OrderDate': '2014-03-29'}, {'OrderID': 5, 'CustomerID': 3, 'OrderDate': '2014-04-28'}, {'OrderID': 6, 'CustomerID': 2, 'OrderDate': '2014-06-01'}, {'OrderID': 7, 'CustomerID': 1, 'OrderDate': '2014-11-06'}, {'OrderID': 8, 'CustomerID': 3, 'OrderDate': '2015-01-28'}, {'OrderID': 9, 'CustomerID': 1, 'OrderDate': '2015-02-15'} ]
DF2 = pd.DataFrame(data=d2)
Я пытаюсь добавить DF1['SignUpDate']
на DF2
, так что DF2
будет выглядеть следующим образом:
CustomerID OrderDate OrderID SignUpDate
0 1 2014-01-15 1 2014-01-01
1 1 2014-01-15 2 2014-01-01
2 2 2014-03-28 3 2014-02-01
3 1 2014-03-29 4 2014-01-01
4 3 2014-04-28 5 2014-03-01
5 2 2014-06-01 6 2014-02-01
6 1 2014-11-06 7 2014-01-01
7 3 2015-01-28 8 2014-03-01
8 1 2015-02-15 9 2014-01-01
Я знаю, что merge
позволит мне добавить столбец, но мне придется либо перезаписать существующий DF, либо создать новый, как это:
DF1 = pd.merge(DF1, DF2) #overwrite
DF3 = pd.merge(DF1, DF2) #new dataframe
Есть не способ объединения на одном поле (возможно индексированный столбец, может быть, не индексированный столбец) и обновление/добавить поле?
Пожалуйста, пост исходные данные и желаемый результат, это действительно зависит от того, как отношения ваших данных есть друг с другом, но вы можете попробовать 'df1 [«Column»] = df2 [» Column ']. Where ((df1 [' NonIndexedColumn '] == df2 [' NonIndexedColumn ']) ' – EdChum