我想将一组文件名拆分为名称和文件类型。
但是,我收到如下错误。
这样做的正确方法是什么?
感谢。
数据框是:
full_name
0 ocean.jpg
1 mountain.png
2 forest.gif
3 river.mp4
4 animal.avi
5 girl.pdf
df[['name', 'type']] = df['full_name'].str.split('.')
KeyError: "['name' 'type'] not in index"
答案 0 :(得分:2)
<强> 选项1 强>
split
tolist
,如果您只想要结果
pd.DataFrame(df.full_name.str.split('.').tolist(), columns = ['name', 'type'])
name type
0 ocean jpg
1 mountain png
2 forest gif
3 river mp4
4 animal avi
5 girl pdf
选项2 (你非常接近这一个)
split
expand=True
,如果您想要修改原始数据框
df[['name', 'type']] = df['full_name'].str.split('.', expand=True)
full_name name type
0 ocean.jpg ocean jpg
1 mountain.png mountain png
2 forest.gif forest gif
3 river.mp4 river mp4
4 animal.avi animal avi
5 girl.pdf girl pdf
答案 1 :(得分:1)
或者,您可以将extract
与命名组一起使用。
In [232]: df.full_name.str.extract('(?P<name>\w+).(?P<type>\w+)', expand=True)
Out[232]:
name type
0 ocean jpg
1 mountain png
2 forest gif
3 river mp4
4 animal avi
5 girl pdf
In [233]: df.join(df.full_name.str.extract('(?P<name>\w+).(?P<type>\w+)', expand=True))
Out[233]:
full_name name type
0 ocean.jpg ocean jpg
1 mountain.png mountain png
2 forest.gif forest gif
3 river.mp4 river mp4
4 animal.avi animal avi
5 girl.pdf girl pdf