【发布时间】:2018-11-21 10:08:44
【问题描述】:
我有一个看起来像这样的熊猫数据框:
ABC_1 ABC_2 ABC_3 ABC_4
x y z k
NaN y NaN k
x NaN z NaN
x NaN z k
... ... ... ...
这只是一列ABC,它已被分成许多列。同样,还有其他列,例如PQR,它们已被分成不同的部分。
- 每列包含100个值(包括NaN),即
df的形状在这种情况下可以被认为是(100,4)。 - 我想将所有四列合并为一个名为
ABC的列,但它应该包含所有四列中的所有值。NaN值可以在连接之前或之后删除,所以这不是问题,尽管我觉得在连接后一次删除所有NaNs会更有效。
简而言之,新列应如下所示:
ABC
x
x
x
y
y
z
z
z
k
k
k
...
我尝试了什么:
我尝试使用pd.concat,但它不起作用,因为它抛出了duplicate index error,这从案例中很明显。现在,有一些方法可以解决这个问题,但我认为如果数据框很大,它的计算效率不会很高。
我尝试将所有值放入一个列表中,然后将其分配给新数据框的列,但正如我所说,数据框可能很大,列表会占用大量空间。
谁能告诉我如何有效地做到这一点?
编辑:可能还有一种情况。不必所有列名都遵循相同的模式。例如上面的数据框也包含这样的列
ABC_1 ABC_2 ABC_3 ABC_4 ABC_5_patt
x y z k p
NaN y NaN k p
x NaN z NaN p
x NaN z k NaN
... ... ... ... ...
【问题讨论】:
标签: python python-3.x pandas dataframe data-analysis