我正在制作一个从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
答案 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
df['Category'] = df['Category'].str.extract(r'([a-zA-Z]+)\.')
print (df)
Name Category Amount
0 ABC Sports 7485
1 BCD. Sports 20