清理数据框列以进行分类

Cleaning dataframe columns for classification

我正在尝试从我的数据框中的一个列中删除所有不相关的信息,但不知道该怎么做。我将 CSV 文件中的数据直接导入到我的数据框中。

0       [{"id": 28, "name": "Action"}, {"id": 12, "nam...

1       [{"id": 12, "name": "Adventure"}, {"id": 14, "...
2       [{"id": 28, "name": "Action"}, {"id": 12, "nam...


4798    [{"id": 28, "name": "Action"}, {"id": 80, "nam...
4799    [{"id": 35, "name": "Comedy"}, {"id": 10749, "...
4800    [{"id": 35, "name": "Comedy"}, {"id": 18, "nam...

我只想要类型,例如动作、喜剧、冒险。如果有人能帮助我或让我朝正确的方向去做这件事,我将不胜感激。

这是一个例子:

 ID    Name

 1     Action
 2     Comedy
 3     Adventure




 def printOneCol():
       my_sheet = 'Sheet1'
       file_name = 'C:/Users/you/Desktop/test.xlsx'
       df = pd.read_excel(file_name,sheet_name=my_sheet, usecols='B:B')
       print(df.to_string(index=False))

这是通过使用 excel。您可以使用 usecols='B:B'

指定哪一列

希望对您有所帮助。

您可以使用 apply 方法将函数应用于列。

df[column_name] = df[column_name].apply(lambda x: x if x in ['action', 'comedy', 'adventure'] else None)

我假设您已将数据加载到数据框 df 中,并且它有一个名为 name 的列代表类型。然后,您可以执行以下操作来过滤所需的流派 -

req_genres = ['action', 'comedy', 'adventure']
filtered_df = df[df['name'].isin(req_genres)].reset_index(drop=True)

上面的内容只会为您提供类型为 'action'、'comedy' 或 'adventure' 的行。