我正在编写一个Python脚本,它从名为“read_file”的熊猫数据帧中获取特定数据,并将其写入csv文件。为此,我循环遍历DataFrame的行,直到满足某个条件,也就是说,我将数据放入字典中,然后使用“To_csv”函数更新csv文件。当然,执行同一件事情的方法更少,也更简单,但我将把优化留到另一天(尽管我愿意接受建议)。
我想知道是否有一种方法可以提示用户决定他们想要写数据的方式。基本上,我是在问他们是否愿意:
到目前为止,我的代码如下所示:
i = 0
for index, row in read_file.iterrows():
case = row['Case']
first = case.split('-')[0]
second = case.split('-')[1]
third = case.split('-')[2]
fourth = case.split('-')[3]
fifth = case.split('-')[4]
if first == 'X01': # if1
if second == '01': # if2
if fourth == '04': # if3
i += 1
Ax = float(row['Ax'])
Ay = float(row['Ay'])
Az = float(row['Az'])
ENT = float(row['ENT'])
Ips = (Ax**2 + Ay**2 + Az**2)**(0.5)
beta = float(row['beta'])
date = row['Date'].replace("/", "-")
totalP = float(row['Total.P'])
data = pd.DataFrame({'Case': [str(case)],
'ENT': [ENT],
'total P': [totalP]},
index = [i])
filename = 'curve_{}-{}-{}-{}_I{}-B{}-D{}.csv'.format(first,second,third,fourth,round(Ips, 2),beta,date)
if os.path.getsize(filename):
print('Curve file not empty.')
while True:
inp = input('Do you want to: A) Append the file. B) Overwrite the file. [A/B]? : ')
if inp in ['A', 'B']:
break
if inp == 'A':
print('Appending... ')
data.to_csv(filename, mode='a')
elif inp == 'B':
print('Overwriting... ')
data.to_csv(filename, mode='w')
但是,每次条件 if1、if2
谢谢
编辑:
示例文件为:
预期输出为:
在循环访问文件之前向用户询问问题,这样问题只会被问(和回答)一次:
while True:
inp = input('Do you want to: A) Append the file. B) Overwrite the file. [A/B]? : ')
if inp in ['A', 'B']:
break
i = 0
for index, row in read_file.iterrows():
case = row['Case']
first = case.split('-')[0]
second = case.split('-')[1]
third = case.split('-')[2]
fourth = case.split('-')[3]
fifth = case.split('-')[4]
if first == 'X01': # if1
if second == '01': # if2
if fourth == '04': # if3
i += 1
Ax = float(row['Ax'])
Ay = float(row['Ay'])
Az = float(row['Az'])
ENT = float(row['ENT'])
Ips = (Ax**2 + Ay**2 + Az**2)**(0.5)
beta = float(row['beta'])
date = row['Date'].replace("/", "-")
totalP = float(row['Total.P'])
data = pd.DataFrame({'Case': [str(case)],
'ENT': [ENT],
'total P': [totalP]},
index = [i])
filename = 'curve_{}-{}-{}-{}_I{}-B{}-D{}.csv'.format(first,second,third,fourth,round(Ips, 2),beta,date)
if os.path.getsize(filename):
print('Curve file not empty.')
if inp == 'A':
print('Appending... ')
data.to_csv(filename, mode='a')
elif inp == 'B':
print('Overwriting... ')
data.to_csv(filename, mode='w')
我在StackOverflow上搜索了很多关于在Android环境中使用上下文的解释,但我只找到了零散的解释片段。 何时应该使用而不是?这个问题详细说明如下。 在和其他中:创建、构建、实例化...需要上下文。我们应该使用还是? 并且如果这些操作是在而不是片段中编写的? 顺便说一下,通过调用和,可能会发生空异常和/或内存泄漏:何时?更准确地说:是否只有当调用方的生存期是被调用对象生存期的(严格)子集
问题内容: 我正在使用MSSQL Server 2008 R2,当我偶然发现索引视图时,我正在尝试优化视图。不幸的是,我的大多数视图都使用左外部联接,而索引视图不支持这种联接。经过一堆研究,让我感到困惑的是最好的解决方法。我看到的方式有以下几种选择: 1) 使用技巧将左联接转换为内部联接,以使用“ OR(IsNull(a)AND IsNull(b))”模拟左联接 我在几个地方找到了该解决方案,但是
//基本上我需要提示用户输入等级,并计算A的B的数量等等。我不知道如何让循环在每个用户输入中循环一次。它只是垃圾邮件输入考试成绩。编辑谢谢大家的帮助我想通了! }
问题内容: 尝试以0到100之间的整数形式获取用户输入,并提示用户“重试”,只要他们的输入不符合此条件。 到目前为止,我的代码在实现我的目标方面有些成功: 如您所见,程序将检查输入是否为int。一旦用户成功输入一个int值,程序就会检查以确保其输入值在0到100之间。当用户响应第二个提示(由第二个while循环启动)输入一个非int值时,就会出现问题。下面是一个示例: 这么长的话来说,我想知道是否
在Ruby on Rails中,有一个特性允许您使用任何日期并打印出它是多么“久远”。 例如: 在Java有什么简单的方法可以做到这一点吗?