我有一个CSV文件的各种列的数字和字符串。当我用pandas.read_csv
打开它时,它总是给出unicode。有什么方法可以将数据帧转换成非unicode格式或将其转换为字符串(并将浮点单元格保持为浮点)?你知道吗
我想尽了一切办法,包括一些类似问题的答案。你知道吗
包括:
df = pd.read_csv('xxxx.csv', encoding = 'utf-8')
那根本不管用。你知道吗
我还尝试过用astype(str)
更改该列的数据类型,但也不起作用。你知道吗
然后我尝试定义一个转换函数来再次编码它:
def convert(input):
if isinstance(input, dict):
return {convert(key): convert(value) for key, value in
input.iteritems()}
elif isinstance(input, list):
return [convert(element) for element in input]
elif isinstance(input, unicode):
return input.encode('utf-8')
else:
return input
df = convert(df)
当我调用df.index.unique()
时,它总是显示:
Index([u'row_a', u'row_b', u'row_c'], dtype='object', name=u'column_a')
但我希望他们都是有条件的。你知道吗
有什么建议吗?非常感谢你!你知道吗
我认为您有一个问题,pandas将您的一些列推断为“object”类型,如果它找到至少一个unicode对象,它将推断为unicode。要解决此问题,应使用检查哪些列是unicode:
然后获取类型:
并将它们转换为字符串:
熊猫会根据列的内容自动为数据框中的列指定数据类型。如果您想改变这一点,您需要为每一列推断一种数据类型。为数据帧的每一列调用这行代码。你知道吗
在Python中,String数据类型等同于pandas中的object数据类型。你知道吗
对于包含浮点数的列,请调用以下代码:
此外,这里还有一个link,用于获取有关pandas中数据类型的其他信息。你知道吗
还可以通过调用
df.dtypes
来检查所有列的数据类型尝试:
相关问题 更多 >
编程相关推荐