我们可以根据特定的单词过滤数据吗?

时间:2019-06-24 08:11:40

标签: python excel python-3.x pandas

我正在制作一个从Excel文件读取数据的Web应用程序。我拥有的数据集有一个列,其中包含书籍的类别和子类别的数据,例如“ Fiction.Romantic”,“ Fiction.Thriller”,“ Sports.Imaginative”,“ Sports.AutoBiographic”等。

我希望熊猫过滤出数据并以“运动”,“小说”等形式打印总值/组合值。

有没有一种方法可以删除子类别(“ .Imaginative”,“。Thriller”)并根据需要进行打印/显示?

有很多类别和子类别,因此手动进行将花费大量时间。

实际结果:

Name     Category                    Amount
ABC   Sports.Autobiographic.         7485
BCD.  Sports.Imaginative.             20

预期结果:

Name     Category      Amount
ABC      Sports         7485
BCD.     Sports          20

1 个答案:

答案 0 :(得分:2)

首先在.之前使用Series.str.split,仅在n=1之前使用,并通过建立索引选择优先列表:

df['Category'] = df['Category'].str.split('.', n=1).str[0]
print (df)
   Name Category  Amount
0   ABC   Sports    7485
1  BCD.   Sports      20

或使用Series.str.extract

df['Category'] = df['Category'].str.extract(r'([a-zA-Z]+)\.') 
print (df)
   Name Category  Amount
0   ABC   Sports    7485
1  BCD.   Sports      20