【发布时间】:2017-10-09 12:35:00
【问题描述】:
我对 python 和 pandas 都很陌生。我想知道如何将数据帧元素从十六进制字符串输入转换为整数,我也遵循了以下提供的解决方案:convert pandas dataframe column from hex string to int
但是,它仍然无法正常工作。以下是我的代码:
df = pd.read_csv(filename, delim_whitespace = True, header = None, usecols = range(7,23,2))
for i in range(num_frame):
skipheader = lineNum[header_padding + i*2]
data = df.iloc[skipheader:skipheader + 164:2]
data_numeric = data.apply(lambda x: int(x, 16))
dataframe.append(data)
数据变量如下所示: data variable (type:DataFrame) 还有 spyder 中的控制台输出:enter image description here
错误发生在data_numeric = data.apply(lambda x: int(x, 16))
错误信息是
TypeError: ("int() can't convert non-string with explicit base", u'occurred at index 7')
我也试过data_numeric = data.apply(pd.to_numeric, errors='coerce')
但是所有的十六进制数都变成了 NaN,这不是我想要的。
有什么建议?提前非常感谢!!!
【问题讨论】:
-
您要转换的数据是分列还是分散?
-
如果您一次在
data的一列上使用.apply(int, base=16),而不是在整个DataFrame 上使用它是否有效?这就是您链接的解决方案中所做的。 -
@wwii 是的,它是我要转换的数据。它的数据类型是数据框,所有元素都是十六进制数字。
-
@EFT 您的解决方案也适用于我!感谢帮助。我在每列上添加了一个额外的 for 循环,效果很好。