I have a dataframe(df):
df = pd.DataFrame({'a':[1],'l':[2],'m':[3],'k':[4],'s':[5],'f':[6]},index=[0])
我正在对行使用枚举。
res = [tuple(x) for x in enumerate(df.values)]
print(res)
>>> [(1, 1, 6, 4, 2, 3, 5)] ### the elements are int type
现在,当我更改数据框df的一个列的数据类型时:
df2 = pd.DataFrame({'a':[1],'l':[2],'m':[3],'k':[4],'s':[5.5],'f':[6]},index=[0])
再次使用enumerate,我得到:
res2 = [tuple(x) for x in enumerate(df2.values)]
print(res2)
>>> [(1, 1.0, 6.0, 4.0, 2.0, 3.0, 5.5)] ### the elements data type has changed
我不明白为什么?
另外,我正在寻找一种解决方案,其中必须以其自身的数据类型获取它。例如:
res = [(1, 1, 6, 4, 2, 3, 5.5)]
我该如何达到这个目标?
astype(object)
不高效。 - jppobject
数据类型的解决方案。你也许可以想到更巧妙的方法来实现 :) - jpp