【发布时间】:2021-07-19 20:56:44
【问题描述】:
你好,我正在寻找一个脚本可以帮助我解决以下问题的 Python:
有以下两列,我需要在序列之间创建间隙以使它们匹配:
| Input | Output | |||
|---|---|---|---|---|
| Index | column A | column B | column A | column B |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 2 | 2 | 2 | 2 |
| 2 | 2 | 2 | 2 | 2 |
| 3 | 3 | 3 | 3 | 3 |
| 4 | 4 | 3 | 3 | |
| 5 | 5 | 4 | 4 | 4 |
| 6 | 5 | 5 | 5 | 5 |
| 7 | 6 | 5 | 5 | 5 |
| 8 | 8 | 6 | 6 | 6 |
| 9 | 8 | 8 | 8 | 8 |
| 10 | 9 | 8 | 8 | 8 |
| 11 | 10 | 9 | 9 | 9 |
| 12 | 11 | 9 | 9 | |
| 13 | 11 | 10 | 10 | 10 |
| 14 | 15 | 13 | 11 | |
| 15 | 16 | 13 | 11 | |
| 16 | 16 | 14 | 13 | |
| 17 | 17 | 14 | 13 | |
| 18 | 17 | 15 | 14 | |
| 19 | 18 | 15 | 14 | |
| 20 | 19 | 16 | 15 | 15 |
| 21 | 21 | 16 | 15 | |
| 22 | 22 | 17 | 16 | 16 |
| 23 | 27 | 17 | 16 | 16 |
| 24 | 17 | 17 | ||
| 25 | 17 | 17 | ||
| 26 | 18 | |||
| 27 | 19 | |||
| 28 | 21 | |||
| 29 | 22 | |||
| 30 | 27 |
我试过了,但我的逻辑不起作用
我使用 Pandas 和 Python 尝试了不同的东西,首先我尝试将列转换为列表并逐个迭代它们但没有奏效,我最接近的方法是这个,但不幸的是仍然不起作用:
for i in df.index:
if(df['column A'][i] != df['column B'][i]):
df['column A'] = df['column A'][:i] + np.NaN + df['column A'][i:]
#df['column A'][i] = df['column A'].append(pd.Series([np.NaN]))
#df2['column A'] = df['column A'].loc[i] = np.NaN
我们将非常感谢您的所有帮助。 (感谢无限)
谢谢
【问题讨论】:
标签: python pandas sequence series gaps-and-islands