【发布时间】:2021-10-09 04:01:15
【问题描述】:
我有一个数据框,其中的列包含月度数据:
| ID | Jan | Feb | Mar | so on... |
|---|---|---|---|---|
| 1 | valJ1 | valF1 | valM1 | ... |
| 2 | valJ2 | valF2 | valM2 | ... |
以及另一个数据框,其中月份在列中给出(其中 1 = 一月,2 = 三月,...):
| Month | ID | data1 | data2 |
|---|---|---|---|
| 1 | 1 | num | num |
| 2 | 1 | num | num |
| 3 | 1 | num | num |
| 4 | 1 | num | num |
| 1 | 2 | num | num |
| 2 | 2 | num | num |
| 3 | 2 | num | num |
| 4 | 2 | num | num |
如何编写一个函数来组合这些数据:
| Month | ID | data1 | data2 | DF1 |
|---|---|---|---|---|
| 1 | 1 | num | num | valJ1 |
| 2 | 1 | num | num | valF1 |
| 3 | 1 | num | num | valM1 |
| 4 | 1 | num | num | valA1 |
| 1 | 2 | num | num | valJ2 |
| 2 | 3 | num | num | valF2 |
| 3 | 2 | num | num | valM2 |
| 4 | 2 | num | num | valA2 |
我申请了一个dataframe,但是不知道怎么合并2个
months = ['Jan', 'Feb', 'Mar', 'Apr',...]
def fun(df2,months):
if df2['Month'] == 1:
val = df1[months[0]]
if df2['Month'] == 2:
val = df1[months[1]]
#and so on
return val
df2['DF1'] = pd.DataFrame(df2.apply(fun, axis=1)
【问题讨论】: