python - 向 pandas DataFrame 添加维度

标签 python pandas

我有一个 pandas DataFrame,其中一个字段中包含一个用管道分隔的字符串。我已将其拆分为 apply 内的列表并将其添加到 DataFrame 中。以竖线分隔的字符串中的值的数量和内容各不相同。

df = DataFrame([{'wibble': 'a', 'pipestring': 'aa|aaa|aaa'}, 
    {'wibble': 'b', 'pipestring': 'bb|bbbb|bbb|bbbbbb'}])

df['pipelist'] = df['pipestring'].map(lambda x: x.split('|'))

我对 pandas 还很陌生,所以可能完全错误,但我认为通过具有多个索引级别的 DataFrame 可以更好地表示这一点,这样我就可以利用 pandas 的索引和其他(很棒的)工具。但是我不知道该怎么做。任何关于我应该做什么的指示/建议都非常感谢。

最佳答案

更具体地说,您的计算目标是什么?

这是一种分割数据并创建组合框架的方法

In [44]: x = df['pipestring'].apply(lambda x: pd.Series(x.split('|')))

In [45]: x
Out[45]: 
    0     1    2       3
0  aa   aaa  aaa     NaN
1  bb  bbbb  bbb  bbbbbb

In [46]: df.join(x).set_index(['wibble'])
Out[46]: 
                pipestring                 pipelist   0     1    2       3
wibble                                                                    
a               aa|aaa|aaa           [aa, aaa, aaa]  aa   aaa  aaa     NaN
b       bb|bbbb|bbb|bbbbbb  [bb, bbbb, bbb, bbbbbb]  bb  bbbb  bbb  bbbbbb

关于python - 向 pandas DataFrame 添加维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15390280/

相关文章:

Python:将函数应用于数据框列并将结果放入另一列

python - 无法导入 Pandas_Datareader

python - 如何根据另一个数据框的值对 pandas groupby 应用更改?

python - 找到给出超过 65 个素数的最低 collat​​z 序列

python - Pandas 切片多索引数据框

python - 为 python 矩阵中的匹配创建一个 bool 矩阵

python - 如何在 Dask 中进行 sort_index、groupby 和应用函数?

python pandas 根据字符串条件删除行

python - 使用不重叠的文本优雅地注释 pandas plot

python - Pandas re.compile 函数 – IndexError : string index out of range