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时,每条记录后都会有一个额外的空白行!
有没有办法让它没有多余的空白?
我编写了将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,但我无法弄清楚如何告诉它所需的字段名是什么.
我在 Keras 中记录“val_loss”和“val_acc”时遇到问题。'loss' 和 'acc' 很容易,因为它们总是记录在 model.fit 的历史记录中。
如果在 中启用验证,则记录“val_loss”,如果启用验证和准确性监控fit,val_acc则记录。但是,这是什么意思?
我的节点是model.fit(train_data, train_labels,epochs = 64,batch_size = 10,shuffle = True,validation_split = 0.2, callbacks=[history]).
如您所见,我使用了 5 折交叉验证并打乱了数据。在这种情况下,我怎么能实现validation在fit以创纪录的“val_loss”和“val_acc”?
谢谢
我有一本字典:
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/中的方法将它们写入表中?
还是在某种意义上有更好的方法?
给定一个字典,例如:
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)
但是他们都没有按预期工作(第二个给了我一个错误,第一个和最后一个只有一列)
我的问题有一堆排列,但最接近的答案是:
不幸的是,每行打印输出如下:
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)