![](/img/trans.png)
[英]Dask dataframe concat changes column type from 'int' to 'float'
[英]Dask, changing column type from second to last
我有多个CSV:
"companyA"
)。 x
或NaN
填充。 我正在尝试让我的Dask
数据帧将标识符(第一个col)保留为字符串,而其余的变为整数。
df = dd.read_csv('data.csv', dtype=str)
dr = df.replace("x",1).fillna(0)
dr[dr.columns[1:-1]] = dr[dr.columns[1:-1]].astype(int)
%time dr.head(10)
通过以上操作,我击中了TypeError: unhashable type: 'Index'
。
有任何想法吗? 谢谢!
您可以选择第一列,第二列和最后一列,并通过concat
合并:
df = pd.concat([dr.iloc[:,[0]], dr.iloc[:, 1:-1].astype(int), dr.iloc[:, [-1]]], axis=1)
熊猫解决方案:
使用DataFrame.iloc
选择所有不带整数的列:
dr.iloc[:, 1:-1] = dr.iloc[:, 1:-1].astype(int)
要么:
dr.loc[:, dr.columns[1:-1]] = dr.loc[:, dr.columns[1:-1]].astype(int)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.