按字符分解“熊猫列”字符串(点积)

时间:2019-04-08 15:01:45

标签: python pandas apache-spark

让我说我有这个数据框

+--------+-------+-----+-------+--------------------------+
|col1    |col2   |...  |col99  | Other irrelevant columns |
+--------+-------+-----+-------+--------------------------+
|A       |AB     |...  |TG     |irrelevant value 1        |
|G       |TC     |...  |AGC    |irrelevant value 2        |
+--------+-------+-----+-------+--------------------------+

我想爆炸每一行,因为每一行只有一个字符(所有可能的一个字符组合),在第一行的情况下,我们将有4行(2x2),在第二行的情况下,将是6行(2x3)

我可以使用以下代码来实现这一点,但是由于我有99列来完成此操作,因此我的实现非常缓慢且无法完成,因此我不得不中断;而且我敢肯定有一种更快的方法。

df_copy=df.copy()
test=pd.DataFrame()
column_sequences=[col1,col2,...,col99]
for i in column_sequences:

    for index, row in df_copy.iterrows():
        if len(row[i])==1:
            test=test.append(row)
            count=+1
        elif len(row[i])>1:


            changes=list(row[i])
            for j in changes:
                row_copy=row.copy()
                row_copy[i]=j
                test=test.append(row_copy)

            count2=+1
    df_copy=test.copy()
    test=pd.DataFrame()

所需的输出:

+--------+-------+-----+-------+--------------------------+
|col1    |col2   |...  |col99  | Other irrelevant columns |
+--------+-------+-----+-------+--------------------------+
|A       |A      |...  |T      |irrelevant value 1        |
|A       |A      |...  |G      |irrelevant value 1        |
|A       |B      |...  |T      |irrelevant value 1        |
|A       |B      |...  |G      |irrelevant value 1        |

etc...

0 个答案:

没有答案