所以我得到了一个包含14列的CSV文件,我试图将该数据转换为字符串类型,我尝试了这个
import pandas as pd
df = pd.read_csv("2008_data_test.csv", sep=",")
output = pd.DataFrame(columns=df.columns)
for c in df.columns:
if df[c].dtype == object:
print "convert ", df[c].name, " to string"
df[c] = df[c].astype(str)
output.to_csv("2008_data_test.csv_tostring2.csv", index=False)
这只给了我标题,我无法弄清楚我错过了什么?
有什么想法吗?是否可以转换特定的列?
答案 0 :(得分:1)
你正在修改一个数据帧,但写另一个,这就是原因。请改用'CA 0.810'
。
.likeLink {
background: none !important;
color: #3387c4;
border: none;
padding: 0 !important;
font: inherit;
cursor: pointer;
}
.likeLink:hover {
background: none !important;
color: #25618c;
border: none;
padding: 0 !important;
font: inherit;
cursor: pointer;
text-decoration: underline;
}
作为MaxU suggested,以这种方式按select_dtypes
进行过滤可能更简单:
c = df.select_dtypes(include=[object]).columns
df[c] = df[c].astype(str)
df.to_csv("2008_data_test.csv_tostring2.csv", index=False)
前者在访问列之前创建了一个数据帧子片段,所以这应该更便宜。
如果您只想转换特定列,可以使用dtypes
在转换前从c = df.columns[df.dtypes.eq('object')]
删除所需列。