df.explode(['X'])
ValueError: column must be a scalar
嗨,有没有人能对此有什么建议?
发布于 2021-10-02 20:14:01
您可以提供列名的列表或元组,但只能使用pandas >= 1.3.0:请参见https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.explode.html
1.3.0版中的
新特性:多列分解
如果您看到此ValueError
,则说明您使用的是较旧版本的pandas
发布于 2020-12-11 19:59:56
使用df.explode('X')
而不是df.explode(['X'])
。熊猫explode page上的例子解释了这一点。
发布于 2021-12-16 14:54:36
对于那些使用Pandas < 1.3的人来说,以下逻辑执行多列分解,并且效率相当高。只需替换要分解的参数的名称即可。
def explode(df):
df['tmp']=df.apply(lambda row: list(zip(row[col1],row[col2])), axis=1)
df=df.explode('tmp')
df[[col1,col2]]=pd.DataFrame(df['tmp'].tolist(), index=df.index)
df.drop(columns='tmp', inplace=True)
return df
https://stackoverflow.com/questions/61313268
复制