Issue
Here is a sample dataframe.
import pandas as pd
d = {'id': ['101', '101', '101', '105', '105'],
'qty': [10, 15, 20, 50, 55],
}
df31 = pd.DataFrame(data=d)
df31
id qty
0 101 10
1 101 15
2 101 20
3 105 50
4 105 55
How to get results like this?
Solution
Looks like your desired output consist of empty strings.
You can use shift
to check equality of a value with it's previous value and assign back ''
if condition is met:
df31['id'] = np.where(df31['id'].shift() == df31['id'],'',df31['id'])
>>> print(df31)
id qty
0 101 10
1 15
2 20
3 105 50
4 55
>>> print(df31.to_dict('records'))
[{'id': '101', 'qty': 10},
{'id': '', 'qty': 15},
{'id': '', 'qty': 20},
{'id': '105', 'qty': 50},
{'id': '', 'qty': 55}]
Answered By - sophocles
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.