让我说我有这个数据框
+--------+-------+-----+-------+--------------------------+
|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...