Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过字符串变量重塑数据帧_Python_Pandas - Fatal编程技术网

Python 通过字符串变量重塑数据帧

Python 通过字符串变量重塑数据帧,python,pandas,Python,Pandas,我有一个如下的数据帧 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 我知道如何使用库(重塑)在R中实现它,但我在python中找不到类似的用法使用: df = (df.set_index('b')['a'] .str.split(

我有一个如下的数据帧

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
我知道如何使用
库(重塑)
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
替代:

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

这些字符串最初是如何在数据帧中结束的?我不熟悉R,但除了python内置的split函数外,我不知道还有什么其他方法可以将字符串拆分为单独的数据项。例如:
[x.split('\n')表示数据['a']]中的x
.set_index('b')
ah,这就是票证。做得好。