【发布时间】:2018-10-05 11:32:58
【问题描述】:
我已经编写了一个代码来删除所有在 category_id 列中具有 NaN 的行,它成功地删除了 category_id 列中具有 NaN 的行:
#removal of rows in dataframe that have NaN values in 'category_id' column
#data = data[np.isfinite(data['category_id'])]
data = data[data['category_id'].notnull()]
print(data['category_id'].shape)
data.to_csv('dataset.csv', encoding='utf-8', index=False)
print(type(data['category_id']))
输出:
(778,)
<class 'pandas.core.series.Series'>
接下来,我编写了一个代码来保留所有仅在列表中指定值的行:
#selecting rows of the dataset whose 'category' column has values mentioned in a list
category_ids = [19, 22, 2, 30, 23]
data = data[data.category_id.isin(category_ids)]
print(data.shape)
data.to_csv('dataset.csv', encoding='utf-8', index=False)
输出:
(0, 164)
因此,它会生成空数据框和 CSV。为什么?
【问题讨论】:
-
你能创建示例数据吗?
-
您的意思是要查看该数据框中的示例数据吗?
-
列中的值是整数还是字符串?什么返回
print (data.category_id.dtype)? -
我的想法也是,看起来你的 df 中有字符串并尝试将它们与整数进行比较 - 这样,什么都找不到,你的 df 是空的
-
@jezrael : 对象
标签: python pandas csv dataframe