Pandas:根据一个字符在一列中分割单元格,然后通过条件将该部分添加到其他列中?

时间:2016-08-05 18:33:40

标签: python pandas dataframe

我想知道是否有最佳方式来执行此类操作。我有一列文件路径,我们会调用 C Drive ,其中包含

之类的路径
user\library\photos\item

这是数据框中的一列,其他列是 Dir [1],Dir [2],...,Dir [n],ITEM

我想通过" \"拆分 C Drive 中的单元格,以便将最后一个字符串附加到 ITEM 列,并且其他根据数量附加到以前的目录。

我目前的粗略动作是一些While循环,但在熊猫中有更好的方法吗?我是图书馆的新手。

还要提一下我知道Pandas不是为这种东西做的,我部分地使用它来学习图书馆。

干杯!

1 个答案:

答案 0 :(得分:0)

您可以使用系列的split属性访问的str函数将您的驱动器路径拆分为组成目录。然后将生成的系列列表转换为DataFrame。它可以在一行中完成,如下所示:

dir_df = pd.DataFrame(df['C Drive'].str.split('\\').tolist())
dir_df.columns = ['Dir [{}]'.format(col) for col in dir_df.columns]
dir_df.columns[-1] = 'ITEM'

如果你想要'C Drive'中的dir_df列,也可以像这样添加它:

dir_df['C Drive'] = df['C Drive']

顺便说一下,你可能想要转义'\'。在读取数据时将其转换为“/”或“\”。否则,可能会发生奇怪的事情。