2024-10-06 12:37:22 发布
网友
我有一个数据帧如下
df = pd.DataFrame({'a': ['aaa\nbbb\nccc','ddd\nfff\nggg'], 'b':[1,2]}) df
我想得到
a b 0 aaa 1 1 bbb 1 2 ccc 1 3 ddd 2 4 fff 2 5 ggg 2
我知道如何用library(reshape)在R中生成它,但我在python中找不到类似物
library(reshape)
R
python
用途:
df = (df.set_index('b')['a'] .str.split('\n', expand=True) .stack() .reset_index(level=1, drop=True) .reset_index(name='a') .reindex(columns=df.columns)) print (df) a b 0 aaa 1 1 bbb 1 2 ccc 1 3 ddd 2 4 fff 2 5 ggg 2
用numpy替代:
numpy
s = df['a'].str.split('\n') df = pd.DataFrame({'b':np.repeat(df['b'].values, s.str.len()), 'a':np.concatenate(s)}) print (df) a b 0 aaa 1 1 bbb 1 2 ccc 1 3 ddd 2 4 fff 2 5 ggg 2
用途:
用
numpy
替代:相关问题 更多 >
编程相关推荐