当前位置: 首页 > 面试题库 >

将数字数据更改为CSV文件中的文本

严柏
2023-03-14
问题内容

下面的查询正在获取数据并创建一个CSV文件,我遇到的问题是名为“ SPLE”的源将数据存储在数据库中,其编号为0、1、50。

但是,在CSV中,这些数字正在CSV中收集,我想在创建CSV时以某种方式表示这些数字,例如

0 =真

1 =错误

50 =待定

有人可以告诉我如何做到这一点吗,我一直在努力吗?

我的代码:

from elasticsearch import Elasticsearch
import csv

es = Elasticsearch(["9200"])

res = es.search(index="search", body=
                {
                    "_source": ["DTDT", "TRDT", "SPLE", "RPLE"],
                    "query": {
                        "bool": {
                            "should": [
                                {"wildcard": {"CN": "TEST*"}}

                            ]
                        }
                    }
}, size=10)



header_names = { 'DTDT': 'DATE', 'SPLE': 'TAG', ...}

with open('mycsvfile.csv', 'w') as f:  
    header_present  = False
    for doc in res['hits']['hits']:
        my_dict = doc['_source'] 
        if not header_present:
            w = csv.DictWriter(f, my_dict.keys())
            w.writerow(header_names) 
            header_present = True


        w.writerow(my_dict)

CSV文件中的输出为:

Date       SPLE     Venue
20171016    1       Central
20171016    1       Central
20171016    0       Central
20171016    0       Central
20171016    50      Central
20171016    0       Central
20171016    1       Central

仅供参考:

我尝试使用熊猫,但是我无法安装熊猫,所以我想知道是否还有其他方法可以解决?


问题答案:

您可以在将值写入csv之前更改其值:

mapping = {0:  "True",
           1:  "False",
           50: "Pending"}
# Map `SPLE`
sple = my_dict['SPLE']
my_dict['SPLE'] = mapping.get(int(sple), sple)

# Map `NME`
nme = my_dict['NME']
my_dict['NME'] = mapping.get(int(nme), nme)


w.writerow(my_dict)


 类似资料:
  • 我正在尝试将位于azure datalake中的csv压缩为zip。该操作是使用datricks中的python代码完成的,我在其中创建了一个挂载点以将dbfs与datalake直接关联。 这是我的代码: 但是我收到了这个错误: 有什么办法吗? 提前感谢。

  • Python是如何将CSV文件读入pandas数据帧的(我可以使用它进行统计操作,可以有不同类型的列,等等)? 我的CSV文件有以下内容: 在R中,我们将使用以下方法读取此文件: 这将返回一个R数据。框架: 有没有类似python的方法来获得相同的功能?

  • 我在pandas中有一个数据帧,我想把它写到CSV文件中。我使用的是: 并得到错误: 有没有什么方法可以很容易地解决这个问题(例如,我的数据帧中有unicode字符)?还有,有没有一种方法可以使用“to-tab”方法(我认为不存在)写入以制表符分隔的文件,而不是CSV?

  • 我正在考虑使用JMeter进行负载测试。 我计划创建一个中等数量的线程~300个,因为我从各种帖子中读到JMeter不能很好地伸缩,而且我没有一些真正特殊的硬件。 所以我计划循环~20次来模拟6000个用户。 如果我使用一个包含6000个条目的CSV数据集,JMeter会为每个线程提供一个CSV文件的单独条目,这样在20个循环的末尾,所有条目都将作为请求的一部分发送到服务器,还是在每个循环的开始,

  • 问题内容: 我设法根据逗号分割了CSV文件。我通过将虚拟字符串放置在有’,’的位置,然后根据虚拟字符串进行拆分来完成此操作。 但是,CSV文件包含以下内容: 因此,在有新行的地方,每行的最后一个值和第一个值合并到自己的字符串中。我该如何解决?我试图将我的虚拟字符串放置在此处,但据此将其拆分,但没有成功。 救命?! 问题答案: 我强烈建议您不要重新发明轮子:)。使用一个已经可用的库来处理CSV文件,

  • 问题内容: 我在一个一维数组中有一个例子。它只会输出列。我的想法是使用2d数组选择行和列。这是我的代码: myfile.csv 输出: 名字蒂姆汤姆 问题答案: 我只是将split结果()添加到a中,如果您确实希望将其作为2d数组,则在事后将其转换。