Я бы предложил воспользоваться регулярными выражениями и методом .str.replace()
- на мой взгляд, это наиболее гибкий подход для данной задачи.
df = pd.DataFrame(
{'COL1': [',,a1', ',a3', 'm100', 'w23'], 'COL2': [',a2', ',n1', ',k12', ','], 'COL3': ['a3', 'v4', '', 'y33'],
'COL4': ['d1,', ',v8', 'w54,,,', 'e17']})
df.COL1 = df.COL1.str.replace('^,', '', regex=True)
df.COL4 = df.COL4.str.replace(',$', '', regex=True)
print(df)
COL1 COL2 COL3 COL4
0 ,a1 ,a2 a3 d1
1 a3 ,n1 v4 ,v8
2 m100 ,k12 w54,,
3 w23 , y33 e17
В данном примере в столбце COL1
в первой и второй строке (по порядку) удалены по 1 запятой слева (в первой строке одна запятая осталась, т.к. их было 2). В столбце COL4
в первой и третьей строке (по порядку) удалено по 1 запятой справа.
При необходимости удаления всех запятых слева или справа можно модифицировать регулярное выражение: '^,+'
и ',+$'
. А c помощью выражения ',+$|^,+'
можно удалить любое количество запятых слева и справа. Можно также указать, какое количество запятых (или других символов) нужно удалить.