【发布时间】:2021-09-12 00:56:18
【问题描述】:
有两个 pandas DataFrame:
df1 = pd.DataFrame({
'name': ['ann', 'maxim', 'ann', 'maxim'],
'surname': [ 'smith', 'shwarz','smith', 'shwarz'],
'date': ['2020.01.01', '2020.01.01', '2020.03.05','2020.03.05'],
'mark_1': [None,'B', 'A', None],
'mark_2': [None,'B', None,'A'],
'mark_3': [None,None, 'A', 'C']
})
| name | surname | date | mark_1 | mark_2 | mark_3 |
|---|---|---|---|---|---|
| ann | smith | 2020.01.01 | None | None | None |
| maxim | shwarz | 2020.01.01 | B | B | None |
| ann | smith | 2020.03.05 | A | None | A |
| maxim | shwarz | 2020.03.05 | None | A | C |
df2 = pd.DataFrame({
'name': ['ann', 'maxim'],
'surname': [ 'smith', 'shwarz'],
'mark_1': ['Z','X'],
'mark_2': ['H','F'],
'mark_3': ['P','Y']
})
| name | surname | mark_1 | mark_2 | mark_3 |
|---|---|---|---|---|
| ann | smith | Z | H | P |
| maxim | shwarz | X | F | Y |
我需要:
| name | surname | date | mark_1 | mark_2 | mark_3 |
|---|---|---|---|---|---|
| ann | smith | 2020.01.01 | Z | H | P |
| maxim | shwarz | 2020.01.01 | B | B | Y |
| ann | smith | 2020.03.05 | A | H | A |
| maxim | shwarz | 2020.03.05 | X | A | C |
但是 functiondf1.isnull(df2) 只用相似的名字和姓氏替换第一行:
| name | surname | date | mark_1 | mark_2 | mark_3 |
|---|---|---|---|---|---|
| ann | smith | 2020.01.01 | Z | H | P |
| maxim | shwarz | 2020.01.01 | B | B | Y |
| ann | smith | 2020.03.05 | A | None | A |
| maxim | shwarz | 2020.03.05 | None | A | C |
据我了解,它应该类似于 SQL 中的 CASE 语句,但我找不到答案。
如果您可以为两个 PySpark DataFrames 解释相同的功能,请特别尊重!
【问题讨论】:
标签: python-3.x pandas dataframe apache-spark pyspark