如何复制pandas df中特定的行?

时间:2019-07-10 09:05:25

标签: python pandas row

我有一个这样的数据框(df):

  sub kin             s
0   a  a1       T34;S89
1   b  a2           S98
2   c  a1  S98;S99;T100
3   a  a3           S96
4   a  a3           T76
5   b  a3       T87;T88

我想复制/复制行,其中s列的值包含一个“;”。例如。第一行应分为两行,其中一行在s列中包含T34,另一行在s列中包含S89。

我尝试过的事情:

首先,我建立一个新列来测试是否存在“;”在s:

df['test'] = df['s'].str.contains(';')

接下来,我建立一个新的df(双精度),它仅包含带有';'的行。在s:

double = df[df['test'] == True]

我得到的是:

  sub kin             s  test
0   a  a1       T34;S89  True
2   c  a1  S98;S99;T100  True
5   b  a3       T87;T88  True

现在,我可以数出多少个“;”就是新行数减去每行我需要的行数:

n = [len(i) for i in [i.split(';') for i in list(double['s'])]]

从中,我得到一个这样的列表(n):

n = [2, 3, 2]

我不知道的是,如何获取仅包含';'中的一个的新列。值与s分开。

感谢您的帮助!

0 个答案:

没有答案