Python 如何在pandas中拆分列?
我有一个关于如何将列元素拆分为多个元素的问题。 如果数据帧看起来像Python 如何在pandas中拆分列?,python,pandas,Python,Pandas,我有一个关于如何将列元素拆分为多个元素的问题。 如果数据帧看起来像 Src Dst A [A,B] B [B,A] C [C] D [D,E,F] E [E,D,F] F [F,D,E] ... 此代码 df["Dst"] = df.Dst.apply(lambda x: x[1:-1].split(",")) 效果很好 但是,如果我有此数据帧: Src Dst x.serm.cool
Src Dst
A [A,B]
B [B,A]
C [C]
D [D,E,F]
E [E,D,F]
F [F,D,E]
...
此代码
df["Dst"] = df.Dst.apply(lambda x: x[1:-1].split(","))
效果很好
但是,如果我有此数据帧:
Src Dst
x.serm.cool [x.serm.cool, x.creat.cool]
x.creat.cool [x.creat.cool, x.serm.cool]
sms.sol.tr [sms.sol.tr]
bbb.asl.gt [bbb.asl.gt,cdc.fre.gh,str.alert.jf]
cdc.fre.gh [cdc.fre.gh, bbb.asl.gt,str.alert.jf]
str.alert.jf [str.alert.jf, bbb.asl.gt, cdc.fre.gh]
...
这一点是行不通的。我试过了
df["Dst"]=df["Dst"].apply(lambda x: x.split(','))
但我有一个错误:
AttributeError:“Series”对象没有属性“split”
你能解释一下这两种情况有什么不同吗
谢谢您检查两个数据帧的列类型
df.Dst.apply(type)
#one of them should be str the 2nd one should be list
对于第二个,我们只需执行explode
G = nx.from_pandas_edgelist(df.explode("Dst"), 'Src', 'Dst')
检查两个数据帧的列类型
df.Dst.apply(type)
#one of them should be str the 2nd one should be list
对于第二个,我们只需执行explode
G = nx.from_pandas_edgelist(df.explode("Dst"), 'Src', 'Dst')
我假设您的数据帧只有这两列
df["newcol1"]=[x[0] for x in df["Dst"]]
df["newcol2"]=[x[1] for x in df["Dst"]]
但是,如果您希望它在每个列中都有X个列表的数据帧中工作,我相信下面的代码将帮助您解决这个问题
split_df=df['Dst'].apply(lambda x: pd.Series(','.join(x).split(',')))
final_df=pd.concat([split_df,df],axis=1)
我假设您的数据帧只有这两列
df["newcol1"]=[x[0] for x in df["Dst"]]
df["newcol2"]=[x[1] for x in df["Dst"]]
但是,如果您希望它在每个列中都有X个列表的数据帧中工作,我相信下面的代码将帮助您解决这个问题
split_df=df['Dst'].apply(lambda x: pd.Series(','.join(x).split(',')))
final_df=pd.concat([split_df,df],axis=1)
这更像是
explode
not split,第一个是string,第二个是listThank you,YOBEN_S。这个问题与这个问题相关:因为我有更多字符的行,我认为问题在于字符数或拆分中的问题。冷,请确认explode也可以像split一样工作,在这个问题中?我想使用列表中的元素作为节点相互链接(如果在同一个列表中)@YOBEN_S,如果你想看一看,我打开这个新问题来解释我要做的一切:。我希望这个示例可以很好,更像是explode
not split,第一个是string,第二个是listThank you,YOBEN_S。这个问题与这个问题相关:因为我有更多字符的行,我认为问题在于字符数或拆分中的iin。冷,请确认explode也可以像split一样工作,在这个问题中?我想使用列表中的元素作为节点相互链接(如果在同一个列表中)@YOBEN_S,如果你想看一看,我打开这个新问题来解释我要做的一切:。我希望能收到样品fine@still_learnings你的样本数据没有解决你的问题,伙计..我认为问题在于数据。我收到了错误消息:ValueError:“c”参数有79个元素,这与大小为76的“x”和“y”不一致。其中79
是我的Src
的长度,包括重复项,而76
是不包括Src
重复项的数据帧长度。非常感谢你的帮助。我正在试图找出如何不排除重复项,因为它们对于节点的大小很重要。@still\u Learns您的示例数据并不能解决您的问题,伙计..我认为问题在于数据。我收到了错误消息:ValueError:“c”参数有79个元素,这与大小为76的“x”和“y”不一致。其中79
是我的Src
的长度,包括重复项,而76
是不包括Src
重复项的数据帧长度。非常感谢你的帮助。我试图找出如何不排除重复项,因为它们对于节点的大小很重要。