将包含元素列表的列展开为字符串

时间:2017-09-21 01:32:07

标签: python pandas

我的问题与此类似:

pandas: When cell contents are lists, create a row for each element in the list

我想为示例中列表的每个元素创建重复行,但现在元素存储为单个字符串,如:

<script>
        google.script.run.withSuccessHandler(sample).getArrayList();

        function sample(options) {
            $('#selectNumber').empty();
            $.each(options, function(i, p) {
                $('#selectNumber').append($('<option></option>').val(p).html(p));
            });
        }
</script>

谢谢

1 个答案:

答案 0 :(得分:0)

from ast import literal_eval

df.assign(samples=df.samples.str.strip("'").apply(literal_eval)).pipe(
    lambda d: d.loc[d.index.repeat(d.samples.str.len())].assign(
        samples=np.concatenate(d.samples)
    )
)

   samples  subject  trial_num
0     0.57        1          1
0    -0.83        1          1
0     1.44        1          1
1    -0.01        1          2
1     1.13        1          2
1     0.36        1          2
2     1.18        1          3
2    -1.46        1          3
2    -0.94        1          3
3    -0.08        2          1
3    -4.22        2          1
3    -2.05        2          1
4     0.72        2          2
4     0.79        2          2
4     0.53        2          2
5     0.40        2          3
5    -0.32        2          3
5    -0.13        2          3