Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以灵活的方式更改Python中的多个值_Python_Pandas_Database - Fatal编程技术网

以灵活的方式更改Python中的多个值

以灵活的方式更改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-

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-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