我想把一个 Dataframe 的列拆分如下。这是主 Dataframe 。
import pandas as pd
df_az = pd.DataFrame(list(zip(storage_AZ)),columns =['AZ Combination'])
df_az
然后,我应用这段代码来拆分列。
out_az = (df_az.stack().apply(pd.Series).rename(columns=lambda x: f'a combination').unstack().swaplevel(0,1,axis=1).sort_index(axis=1))
out_az = pd.concat([out_az], axis=1)
out_az.head()
然而,结果如下。
同时,预期结果为:
有谁能帮我修改一下代码吗?谢谢。
3条答案
按热度按时间ruarlubt1#
下面是一个示例,说明如何使用str.split()方法拆分DataFrame的“AZ Combination”列:
这将按“-”字符拆分“AZ组合”列,并为拆分的每个部分创建新列。expand=True参数告诉该方法为拆分值创建新列,而不是返回Series。
还可以将新列分配给新DataFrame:
也可以按如下方式为新列指定新列名:
您还可以将新 Dataframe 与原始 Dataframe 合并,如下所示:
需要注意的是,这将按“-"分割列,如果分隔符不同,请相应地调整代码。此外,如果字符串的部分数量可变,您可能需要相应地调整列数。
vfh0ocws2#
您可以应用
np.ravel
:j9per5c43#
将列转换为列表,并将
reshape
转换为2d array
,因此可以使用Dataframe
构造函数。然后设置列名,为避免列名重复则添加计数器:
如果需要
MultiIndex
: