I have a dataframe like this
| title | timestamp |
|---|---|
| String one | 2016-12-02 |
| String two | 2016-12-02 |
| ... | ... |
| String twenty-five | 2016-12-02 |
| String twenty-six | 2016-12-03 |
| String twenty-seven | 2016-12-03 |
| ... | ... |
| String fifty | 2016-12-03 |
And I want to change it into a dataframe like this
| timestamp | top 1 | top 2 | ... | top 25 |
|---|---|---|---|---|
| 2016-12-02 | String one | String two | ... | String twenty-five |
| 2016-12-03 | String twenty-six | String twenty-seven | ... | String fifty |
Basically i'm trying to make every 25 rows to become columns consecutively and i'm not sure how big the dataset will be but it's going to have atleast a few years as date.
I know i'm suppose to use reshape or melt but I've been unsuccessful till now. Any help in how to tackle this?
CodePudding user response:
Here is an idea, where column A is your dates and column D is your strings
df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
"bar", "bar", "bar", "bar"],
"D": ["1", "this text", "text other", "What", "migrate", "Data", "5", "6 saucisses", "Okayy"]
})
# Join with a character very specific, that you won't find in your rows
# Something like '#######'
df = df.pivot_table(values='D', index=['A'], aggfunc=lambda x: '#'.join(x))
df_test = df.D.str.split(pat='#',expand=True,)
