相关疑难解决方法(0)

用Python编写的CSV文件在每行之间都有空行

import csv

with open('thefile.csv', 'rb') as f:
  data = list(csv.reader(f))
  import collections
  counter = collections.defaultdict(int)

  for row in data:
        counter[row[10]] += 1


with open('/pythonwork/thefile_subset11.csv', 'w') as outfile:
    writer = csv.writer(outfile)
    for row in data:
        if counter[row[10]] >= 504:
           writer.writerow(row)
Run Code Online (Sandbox Code Playgroud)

此代码读取thefile.csv,进行更改并将结果写入thefile_subset1.

但是,当我在Microsoft Excel中打开生成的csv时,每条记录后都会有一个额外的空白行!

有没有办法让它没有多余的空白?

python windows csv

394
推荐指数
7
解决办法
24万
查看次数

Python字典到CSV

我编写了将CSV读入python字典的代码,工作正常.我正在尝试将字典恢复为CSV格式.我写了以下内容:

import csv

itemDict={}

listReader = csv.reader(open('/Users/broberts/Desktop/Sum_CSP1.csv','rU'), delimiter = ',', quotechar='|')

for row in listReader:
    fID = row[0]
    fClassRange = row[1]
    fArea = row[2]

    if itemDict.has_key(fID):
        itemDict[fID][fClassRange]=fArea
    else:
        itemDict[fID] = {'5.0 to 5.25':'','5.25 to 5.5':'','5.5 to 5.75':'','5.75 to 6.0':'','6.0 to 6.25':'','6.25 to 6.5':'','6.5 to 6.75':'','6.75 to 7.0':'','7.0 to 7.25':'','7.25 to 7.5':'','7.5 to 7.75':'','7.75 to 8.0':'','8.0 to 8.25':'',}
        itemDict[fID][fClassRange]=fArea

listWriter = csv.writer(open('/Users/broberts/Desktop/Sum_CSP1_output.csv', 'wb'), delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)

for a in itemDict:
    print a
    listWriter.writerow(a)
Run Code Online (Sandbox Code Playgroud)

在最后一个块中,listWriter不会向CSV写入任何内容,尽管它会打印出来.我相信这与字典无序有关.我真的需要写出fID和每个fID相关的每个键(fClassRange ex."5.0到5.25"),然后写出与每个fClassRange相关联的值fArea到CSV,但我还没有得到那么多我的代码,因为我无法弄清楚如何写出甚至fID.

我查看了使用DictWriter,但我无法弄清楚如何告诉它所需的字段名是什么.

python csv dictionary

27
推荐指数
3
解决办法
3万
查看次数

如何在 Keras 中保存 val_loss 和 val_acc

我在 Keras 中记录“val_loss”和“val_acc”时遇到问题。'loss' 和 'acc' 很容易,因为它们总是记录在 model.fit 的历史记录中。

如果在 中启用验证,则记录“val_loss”,如果启用验证和准确性监控fitval_acc则记录。但是,这是什么意思?

我的节点是model.fit(train_data, train_labels,epochs = 64,batch_size = 10,shuffle = True,validation_split = 0.2, callbacks=[history]).

如您所见,我使用了 5 折交叉验证并打乱了数据。在这种情况下,我怎么能实现validationfit以创纪录的“val_loss”和“val_acc”?

谢谢

python keras

6
推荐指数
1
解决办法
6479
查看次数

将字典打印到表格中

我有一本字典:

dic={'Tim':3, 'Kate':2}
Run Code Online (Sandbox Code Playgroud)

我想将其输出为:

Name Age
Tim 3
Kate 2
Run Code Online (Sandbox Code Playgroud)

首先将它们转换成词典列表的好方法

lst = [{'Name':'Tim', 'Age':3}, {'Name':'Kate', 'Age':2}]
Run Code Online (Sandbox Code Playgroud)

然后通过/sf/answers/726128791/中的方法将它们写入表中?

还是在某种意义上有更好的方法?

python dictionary python-2.7

4
推荐指数
2
解决办法
2万
查看次数

将字典字典中的单个条目转换为数据框,其中键是列

给定一个字典,例如:

records = {0:{'name':'John', 'salary':'5000'}, 1:{'name':'Bob', 'salary':'3500'}}
Run Code Online (Sandbox Code Playgroud)

如果我想获取并存储(在 csv 中)一个数据框,例如:

name  salary
John   5000
Run Code Online (Sandbox Code Playgroud)

通过使用记录 [0] 作为访问内部字典的方式,我该怎么做?

我试过了:

df = pd.DataFrame(records[0], index=[0])

df= pd.DataFrame(list(records[0].values()), columns=list(records[0].keys()))

df= pd.DataFrame.from_dict(records[key], orient='columns')
Run Code Online (Sandbox Code Playgroud)

但是他们都没有按预期工作(第二个给了我一个错误,第一个和最后一个只有一列)

python dictionary dataframe pandas

3
推荐指数
1
解决办法
2007
查看次数

如何将用户输入放入CSV文件?

我的问题有一堆排列,但最接近的答案是:

如何将Python字典写入csv文件?

不幸的是,每行打印输出如下:

matthew, green
rachel, blue
raymond, red
Run Code Online (Sandbox Code Playgroud)

somedict = dict(raymond ="red",rachel ="blue",matthew ="green")

我的问题需要输出更像这样:

why, date, story
"because", "sunday", "blah blah blah"
Run Code Online (Sandbox Code Playgroud)

我从用户输入中获取字典,并且输出文件将新答案((原因,日期和故事)放在新行上是很重要的(此外,列标题只打印一次).所以我的代码看起来像这样:

import csv
o = "file.csv"
why = input("Why? ")
date = input("Date: ")
story = input("Story: ") 
Run Code Online (Sandbox Code Playgroud)

总而言之,我需要看起来像这样的输出:

why, date, story
"because", "sunday", "blah blah blah"
"i don't know", "monday", "blah blah blue"
"third base", "monday", "blah blah blarg"
Run Code Online (Sandbox Code Playgroud)

我只是在寻找一种简单的方法来获取用户输入,将其写入csv文件中的新行.我现在已经在这里待了大约两个小时,所以这就是我在这里的原因.首先我得到两个TypeError错误:(1)'str'不支持缓冲区接口(我通过将"utf-8"参数添加到with open(file,"wb","utf-8")语句来解决这个问题).(2)TypeError:需要一个整数.出于某种原因,我从"wb"中取出了"b",它似乎摆脱了这个错误.我发布的链接让我几乎到了我需要的地方,但还不够,我真诚地感谢任何人都可以提供的快速澄清.

编辑

要清楚,我尝试了一些可能性.最有希望的是:

with open("file.csv", "w", encoding = "utf-8") as f:
    w = csv.writer(f)
    w.writerows(somedict.items()) …
Run Code Online (Sandbox Code Playgroud)

python csv

1
推荐指数
1
解决办法
4173
查看次数

标签 统计

python ×6

csv ×3

dictionary ×3

dataframe ×1

keras ×1

pandas ×1

python-2.7 ×1

windows ×1