鱼C论坛

 找回密码
 立即注册
查看: 2071|回复: 1

for语句循环

[复制链接]
发表于 2019-12-15 10:45:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import csv
import math
import pandas as pd
import os

cwd = os.getcwd()
read_path = '17050308'
# 读取文件夹
save_path = 'merge'
save_name  = 'Modified.csv'
os.chdir(read_path)
#修改当前工作目录
csv_name_list = os.listdir()
#将所有文件名存入列表
df = pd.read_csv(csv_name_list[0])
#读取第一个CSV文件并包含表头,用于后续的csv文件拼接
df.to_csv( cwd + '\\' + save_path + '\\' + save_name , encoding="utf_8",index=False)
for i in range(1,19):
    df = pd.read_csv(csv_name_list[i])
    df.to_csv(cwd + '\\' + save_path + '\\' + save_name ,encoding="utf_8",index=False, header=False, mode='a+')
# 循环遍历列表中各个CSV文件名,并完成文件拼接
with open(r"C:\Users\鹏鹏\Desktop\12.15\merge\Modified.csv","r",encoding="utf-8")as f:
    reader = csv.reader(f)
    rows = [row for row in reader]
def distance(A,B,C,D):
#A,B为两点的经度,C,D为两点的纬度
    R = 6378137.000
    r = 6356752.314
    s1 = ((math.cos(A) * (R - A * (R - r)/90) + math.cos(B) * (R - B * (R-r)/90))) * math.pi / 360 * (A-B)
#s1是经度
    s2 = 111000 * (C - D)
#s2是纬度
    s = math.sqrt( s1**2 + s2**2 )
#s是两点间距离
    return s
Sum = 0
for j in range(1,len(rows)-1):
    if rows[j][8] == 1 and rows[j+1][8] == 1:
        A1 = float(rows[j][4])
        B1 = float(rows[j][5])
        A2 = float(rows[j+1][4])
        B2 = float(rows[j+1][5])
        re = distance(A1,A2,B1,B2)
        Sum += re
   
#Sum是20辆车一天行驶的总路程
S = Sum / 50
print("日均载客路程:{}".format(S))

使用以上语句读取csv文件,为什么S为0?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-12-15 23:24:47 From FishC Mobile | 显示全部楼层
在循环里print看看循环有没有执行,如果一个都没有,那就仔细检查你的if条件写的有没有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-21 09:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表