重新塑造数据框架:按字符串变量

2024-10-06 12:37:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧如下

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中找不到类似物


Tags: 数据dataframedfffflibrarypdbbbccc
1条回答
网友
1楼 · 发布于 2024-10-06 12:37:22

用途:

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替代:

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

相关问题 更多 >