我有一个大型数据集,我使用read_csv
导入,如下所述,它应该是浮点测量和NaN。
df = pd.read_csv(file_,parse_dates=[['Date','Time']],na_values = ['No Data','Bad Data','','No Sample'],low_memory=False)
当我应用df.dtypes
时,大多数列都返回为对象类型,表明数据框中还有其他对象我不知道。我正在寻找一种识别这些字符串的方法然后替换na values
。
我想要做的第一件事就是将所有内容转换为dtype = np.float
,但我不能。然后,我尝试读取每个(列,索引)并返回标识的字符串。
我尝试过一些非常低效的东西(我是初学者)并且耗费时间,它已经适用于其他数据帧,但在这里它会返回错误:
TypeError: argument of type 'float' is not iterable
from isstring import *
list_string = []
for i in range(0,len(df)):
for j in range(0,len(df.columns)):
x = test.ix[i,j]
if isstring(x) and '.'not in x:
list_string.append(x)
list_string = pd.DataFrame(list_string, columns=["list_string"])
g = list_string.groupby('list_string').size()
是否有一种在大型数据集中检测未知字符串的简单方法。感谢
答案 0 :(得分:0)
你可以尝试:
string_list = []
for col, series in df.items(): # iterating over all columns - perhaps only select `object` types
string_list += [s for s in series.unique() if isinstance(s, str)]