python如何根据csv中一列的内容对另一列进行写入 python中对csv文件某一列的每一行文本进行分词后再写到...
python\u5904\u7406\u4e00\u4e2acsv\u6570\u636e\uff0c\u6839\u636e\u5176\u4e2d\u4e00\u5217\u6570\u636e\u6765\u5f97\u5230\u65b0\u4e00\u5217\u5199\u5165\u540c\u4e00\u4e2a\u6587\u4ef6\u4e2d\uff1f\u7528pandas\u5e93\u53ef\u4ee5\u5b9e\u73b0\uff1a
import pandas as pdfile = 'your_csv_path.csv'data = pd.read_csv(file)data['sort'] = data['gender'].map(lambda x: 1 if x == 'man' else -1)data.to_csv(file, index=False)
# -*- coding: utf8 -*-import csvl = [['1', 'Wonderful Spam'],['2', 'Lovely Spam']]#\u6a21\u62df\u6570\u636e\u5199\u5165\u4e00\u4e2acsvwith open('eggs.csv', 'w', newline='') as csvfile: spamwriter = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) for row in l: spamwriter.writerow(row)#\u4ece\u6587\u4ef6\u8bfb\u53d6l=[]with open('eggs.csv', newline='') as csvfile: spamreader = csv.reader(csvfile, delimiter=',', quotechar='"') for row in spamreader: l = l + [row]#\u628a\u4e24\u5217\u62fc\u63a5\u589e\u52a0\u4e3a\u7b2c\u4e09\u5217\u5199\u56de\u5230\u6587\u4ef6with open('eggs.csv', 'w', newline='') as csvfile: spamwriter = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) for row in l: print(row) spamwriter.writerow(row + [row[0]+row[1]])
"""
请参考
python列表切片读取csv数据计算导购客单价.py
题目来源 https://github.com/FGFW/FCNNIC
依山居 19:44 2015/11/22
计算公式为:
导购日客单价=导购日成交金额/日客单数
每个相同的单据编号为1单,也就是去重后得到该导购的日客单数
导购日成交金额=导购完成的日所有单总和,也可以小计中倒数第二列直接提取
要求:计算出CSV表格中每位导购每天的客单价.
总结:这个版本要计算多个日期,逻辑复杂度多了一层,
忍不住写很了很多列表解析过滤,代码行数少,但是可读性和维护性应该差。
"""
with open("2014.08.01-2014.09.30零售数据.csv") as f:
txt=[r.rstrip("
").split(",") for r in f.readlines()]
dg={r[0] for r in txt if (r[0]!='') and ("普通零售" in r[5])}
dg=sorted(dg)
for d in dg:
date={r[1] for r in txt if (d in r[0]) and ("-" in r[1])}
date=sorted(date)
for t in date:
导购成交金额=sum([float(s[-3]) for s in txt if (d in s[0] and (t in s[1]) and s[-3]!='')])
日单数=len({s[2] for s in txt if (d in s[0] and (t in s[1]) and s[-3])})
导购客单价=导购成交金额/日单数
print(d,"%s 成交额:%4.2f 客单价:%2.2f 日单数:%2d" %(t,导购成交金额,导购客单价,日单数))
try:
input("按回车退出")
except SyntaxError:
pass
"""
输出:
...
顾意珍 2014-09-13 成交额:539.00 客单价:26.95 日单数:20
顾意珍 2014-09-14 成交额:397.00 客单价:22.06 日单数:18
黎丽群 2014-08-15 成交额:489.00 客单价:19.56 日单数:25
...
"""
# -*- coding: utf8 -*-
import csv
l = [['1', 'Wonderful Spam'],['2', 'Lovely Spam']]
#模拟数据写入一个csv
with open('eggs.csv', 'w', newline='') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=',',
quotechar='"', quoting=csv.QUOTE_MINIMAL)
for row in l:
spamwriter.writerow(row)
#从文件读取
l=[]
with open('eggs.csv', newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in spamreader:
l = l + [row]
#把两列拼接增加为第三列写回到文件
with open('eggs.csv', 'w', newline='') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=',',
quotechar='"', quoting=csv.QUOTE_MINIMAL)
for row in l:
print(row)
spamwriter.writerow(row + [row[0]+row[1]])
用字典进行存储处理。
绛旓細鐢╬andas搴撳彲浠ュ疄鐜帮細import pandas as pdfile = 'your_csv_path.csv'data = pd.read_csv(file)data['sort'] = data['gender'].map(lambda x: 1 if x == 'man' else -1)data.to_csv(file, index=False)
绛旓細"""璇峰弬鑰python鍒楄〃鍒囩墖璇诲彇csv鏁版嵁璁$畻瀵艰喘瀹㈠崟浠.py棰樼洰鏉ユ簮 https://github.com/FGFW/FCNNIC渚濆北灞 19:44 2015/11/22璁$畻鍏紡涓:瀵艰喘鏃ュ鍗曚环=瀵艰喘鏃ユ垚浜ら噾棰/鏃ュ鍗曟暟姣忎釜鐩稿悓鐨勫崟鎹紪鍙蜂负1鍗,涔熷氨鏄幓閲嶅悗寰楀埌璇ュ璐殑鏃ュ鍗曟暟瀵艰喘鏃ユ垚浜ら噾棰=瀵艰喘瀹屾垚鐨勬棩鎵鏈夊崟鎬诲拰锛屼篃鍙互灏忚涓掓暟绗簩鍒...
绛旓細璇诲彇csv鏂囦欢锛岀敤鐨勬槸csv.reader()杩欎釜鏂规硶銆傝繑鍥炵粨鏋滄槸涓涓猒csv.reader鐨勫璞★紝鎴戜滑鍙互瀵硅繖涓璞¤繘琛岄亶鍘嗭紝杈撳嚭姣忎竴琛岋紝鏌愪竴琛岋紝鎴栨煇涓鍒椼備唬鐮佸涓嬶細姣忎竴琛岄兘鏄竴涓猯ist锛岀劧鍚庣敤鏉′欢鍒ゆ柇鍗冲彲
绛旓細杩欐槸csv鏁版嵁鐨勬牱寮忥紝鍒楁暟鏄熀浜0寮濮嬬殑 coding=gbkimport globimport pandas as pd# 鍒濆鍖栵紝姝ゅ彉閲忕敤鏉ヨ鎵鏈塩sv鏁版嵁all_data_frames = []# 浣跨敤glog.glob鎵惧埌鎵鏈塩sv鏂囦欢骞跺皢鎵鏈夋暟鎹斁鍒癮ll_data_frames涓璮or file in glob.glob("*.csv"):all_data_frames.append(pd.read_csv(file,encoding='...
绛旓細line[1].decode('utf-8').find( u'甯屽尯鏌厠')>=0 琛ㄧず褰撳墠鏁版嵁鍖呭惈鏈夋墍鏌ユ壘鐨勫瓧绗︿覆'甯屽尯鏌厠'
绛旓細1.鍏ㄩ儴璇诲埌鎴愬垪琛ㄧ劧鍚庨夊彇琛岋紙瀹规槗瓒呮椂锛屼贡鐮佺瓑闂锛2.鍒╃敤杩唬宸ュ叿锛屼唬鐮佸涓嬶細from itertools import islice with open('data.tsv', 'r') as f:for line in islice(f, 1, None):process data f.close()淇敼islice鍑芥暟涓2涓弬鏁皀鍗冲彲锛岃〃绀鸿鍒癴鏂囦欢瀵硅薄鐨勭n...
绛旓細data=[]with open("銆csv鏂囦欢璺緞銆") as f:readline鍏堣鎺夌涓琛 while (line := f.readline()) != "":line = line.split(',')data.append(line[1:2]+[1 if line[4] == "鏄" else 0])璇存槑锛:= 娴疯薄杩愮畻绗 3.8璇硶 浣滅敤鏄竴杈硅祴鍊硷紝涓杈硅琛ㄨ揪寮忕殑鍊煎姞鍏ヨ繍绠 姣斿>>> (i ...
绛旓細import pandas as pd #涓鑸潵璇寸洿鎺ョ敤pandas杩欎釜搴 import os os.getcwd()#褰撳墠宸ヤ綔璺緞锛屽嵆get current work directory os.chdir("D:/")#鏀瑰彉鍒颁綘瑕佽鍙栦互鍙婁繚瀛樻暟鎹殑宸ヤ綔璺緞锛屽嵆change directory data = pd.read_csv("data.csv")#璇诲彇鏁版嵁 ...
绛旓細浣犲彲浠ョ敤CD鍛戒护杩涘叆csv 鐨勬枃浠跺す鐨勪綅缃紝鐒跺悗杈撳叆copy *.csv aall.csv 灏嗘枃浠跺悎骞舵垚涓涓猚sv鏂囦欢锛岀劧鍚庡彲浠ユ墦寮excel杩涜鎺掑簭寰楀嚭锛 濡傛灉excel瑁呬笉涓嬪彲浠ヤ娇鐢╝ccess 鐨勬暟鎹簱杩涜绛涢
绛旓細濡傛灉鏄湡姝g殑csv鏂囦欢锛屾垜鍙涓鐐癸紝python閲岄潰鏈塩sv妯″潡锛屼笓闂ㄥ鐞哻sv鏂囦欢銆傚鏋滄槸绌烘牸鍒嗗壊搴旇涔熷彲浠ワ紝寤鸿浣狅紝鐪嬩竴涓python鐨刢sv妯″潡鐨凙PI锛岃洰绠鍗曠殑浠g爜锛屽叾瀹炲鏋滀笉鐢ㄧ殑璇濊嚜宸卞啓涔熷彲浠ャ備笉鏄緢澶嶆潅銆備唬鐮佺墖娈靛涓嬶細def deal_file(file_in, file_out) with open(file_in, 'r') as f_in: ...