使用 pandas to_csv 仅引用所需的列

Posted

技术标签:

【中文标题】使用 pandas to_csv 仅引用所需的列【英文标题】:Quote only the required columns using pandas to_csv 【发布时间】:2018-05-18 17:48:55 【问题描述】:

我需要使用 pandas to_csv 函数生成一个 csv。我试过quote=csv.QUOTE_NONNUMERIC。但是对于其中一个日期时间列,我不需要双引号。

有没有办法选择我们想要双引号的列?

【问题讨论】:

您可能也想将其标记为 python。 @Sowmika 请分享数据框样本(2-3)行或 df.dtypes 【参考方案1】:

谢谢大家。我得到了答案,所以只是想分享一下。

首先我得到了要引用的标题列表并将它们循环如下:

for col in quoteColumnsList:
    df[col] = '"' + df[col] + '"'

这里我的quotechar 是'"'。​​现在我使用to_csv 和quote 参数作为csv.QUOTE_NONE。这样我们只得到所需列的双引号。

【讨论】:

【参考方案2】:

这对我来说效果更好:

columnsList = data.columns #(or specific columns that you need)
for col in columnsList:
   data[col] =  data[col].apply(lambda x: "" + str(x) + "")

示例:对于我的项目,我必须添加引号并将它们转换为列表。

def convert_list(data):
    columnsList = data.columns
    for col in columnsList :
        data[col] =  data[col].apply(lambda x: "" + str(x) + "") #this adds single quotes without specifying it as "'")
    df = data.values.tolist()
    return df

【讨论】:

以上是关于使用 pandas to_csv 仅引用所需的列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用laravel中另一个表中的外键获取所需的列

Python pandas 带有 to_csv 的大浮点数

仅查找替换完全匹配的字符串

“FromSql”操作的结果中不存在所需的列

我应该合并事实表的列以使其更窄,还是应该通过大量列使其对用户更友好?

仅从网站中提取所需的列