将CSV数据转换为字符串

时间:2017-10-17 19:02:35

标签: python string pandas csv dataframe

所以我得到了一个包含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)

这只给了我标题,我无法弄清楚我错过了什么?

有什么想法吗?是否可以转换特定的列?

1 个答案:

答案 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')] 删除所需列。

相关问题