Tôi có một dataframe đơn giản như vậy:Thay thế các giá trị trùng lặp trên các cột trong Pandas
df = [ {'col1' : 'A', 'col2': 'B', 'col3': 'C', 'col4':'0'},
{'col1' : 'M', 'col2': '0', 'col3': 'M', 'col4':'0'},
{'col1' : 'B', 'col2': 'B', 'col3': '0', 'col4':'B'},
{'col1' : 'X', 'col2': '0', 'col3': 'Y', 'col4':'0'}
]
df = pd.DataFrame(df)
df = df[['col1', 'col2', 'col3', 'col4']]
df
nào trông như thế này:
| col1 | col2 | col3 | col4 |
|------|------|------|------|
| A | B | C | 0 |
| M | 0 | M | 0 |
| B | B | 0 | B |
| X | 0 | Y | 0 |
Tôi chỉ muốn thay thế ký tự lặp đi lặp lại với nhân vật '0' , trên các hàng. Nó tóm tắt để giữ giá trị trùng lặp đầu tiên mà chúng tôi gặp phải, như sau:
| col1 | col2 | col3 | col4 |
|------|------|------|------|
| A | B | C | 0 |
| M | 0 | 0 | 0 |
| B | 0 | 0 | 0 |
| X | 0 | Y | 0 |
Điều này có vẻ đơn giản nhưng tôi bị kẹt. Bất kỳ nudges đúng hướng sẽ được thực sự đánh giá cao.
Tuyệt vời - Tôi đã nghĩ đến việc xếp chồng/nhóm/xoay vòng, nhưng điều này là nhiều, sạch hơn nhiều. Bạn có thể tránh lambda bằng cách sử dụng 'pd.Series.duplicated' trực tiếp, nhưng đó là nhỏ. – DSM
@ DSM đó là một mẹo hay, tôi sẽ chỉnh sửa – maxymoo
Các bạn thật tuyệt vời. –