'how to append columns in dataframe
I have a dataframe like this,
data = {'first_column': ['first_sentence', 'second_sentence'], 'second_column': ['A', 'B'], 'third_column' : ['C', 'D'] }
The original structure like this
first_column second_column third_column
first_sentence A C
second_sentence B D
I want to convert it into following format
first_column column
first_sentence A
first_sentence C
second_sentence B
second_sentence D
I tried df.stack()
but it gives
0 first_column first_sentence
second_column A
third_column C
1 first_column second_sentence
second_column B
third_column D
I have around 27 columns in original dataframe and i want to produce 1 column, how can i do this
thank you in advance.
Solution 1:[1]
Try to use melt:
pd.melt(df, id_vars=['first_column'], value_vars=['second_column', 'third_column'], value_name='column')
.sort_values(by="first_column").drop(['variable'], axis=1)
Solution 2:[2]
Use set_index before stack:
out= df.set_index('first_column').stack().droplevel(1).rename('column').reset_index()
print(out)
# Output
first_column column
0 first_sentence A
1 first_sentence C
2 second_sentence B
3 second_sentence D
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Corralien |

