以灵活的方式更改Python中的多个值
python中有两个彼此不同的数据帧(即A和B),但它们有两个公共列 “日期”“小时”。 我想根据常见的日期和时间,在从B到a的列中引入值。 比如说, 数据帧以灵活的方式更改Python中的多个值,python,pandas,database,Python,Pandas,Database,python中有两个彼此不同的数据帧(即A和B),但它们有两个公共列 “日期”“小时”。 我想根据常见的日期和时间,在从B到a的列中引入值。 比如说, 数据帧 Date Hour Color Number 10-5 1 B 3 10-6 2 A 3 11-3 10 B 3 12-4 9 A 3 Date Hour Basic polygon 10-5 1 1 R 10-6 2 2 T 12-
Date Hour Color Number
10-5 1 B 3
10-6 2 A 3
11-3 10 B 3
12-4 9 A 3
Date Hour Basic polygon
10-5 1 1 R
10-6 2 2 T
12-4 9 A 3T
B数据帧
Date Hour Color Number
10-5 1 B 3
10-6 2 A 3
11-3 10 B 3
12-4 9 A 3
Date Hour Basic polygon
10-5 1 1 R
10-6 2 2 T
12-4 9 A 3T
我想获得:
Date Hour Color Number polygon
10-5 1 B 3 R
10-6 2 A 3 T
11-3 10 B 3 nan
12-4 9 A 3 3T
我如何才能做到这一点?请尝试将日期和时间保留在左侧:
import pandas as pd
dfa = pd.DataFrame({
'Date': {0: '10-5', 1: '10-6', 2: '11-3', 3: '12-4'},
'Hour': {0: 1, 1: 2, 2: 10, 3: 9},
'Color': {0: 'B', 1: 'A', 2: 'B', 3: 'A'},
'Number': {0: 3, 1: 3, 2: 3, 3: 3}
})
dfb = pd.DataFrame({
'Date': {0: '10-5', 1: '10-6', 2: '12-4'},
'Hour': {0: 1, 1: 2, 2: 9},
'Basic': {0: '1', 1: '2', 2: 'A'},
'polygon': {0: 'R', 1: 'T', 2: '3T'}
})
new_df = dfa.merge(dfb.drop(columns='Basic'), on=['Date', 'Hour'], how='left')
print(new_df)
new_df
:
日期小时颜色数多边形
0 10-5 1 B 3 R
1 10-6 2 A 3 T
2 11-3 10 B 3南
3 12-4 9 A 3 3T