我目前正在尝试对 pandas 数据框执行 KFold,从 csv 读取 pandas 文件。不幸的是我收到错误:
“没有 [Int64Index , 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,\n ...... dtype='int64 ')] 在 [列] 中”
这是我的代码:
def getSlicesOfData(read_csv):
slice_training_data = read_csv[["player", "0", "1", "2", "3", "4", "5", "6", "7", "8"]]
slice_prediction_data = read_csv[["best_move"]]
return (slice_training_data, slice_prediction_data)
def getKFold(data_sliced):
kf = KFold(n_splits=10, random_state=None, shuffle=False)
return kf.split(data_sliced[0],data_sliced[1])
#return TimeSeriesSplit(n_splits=10, max_train_size=9)
if __name__ == "__main__":
read_csv = pd.read_csv('100games.csv')
data_slice = getSlicesOfData(read_csv)
for train_index, test_index in …Run Code Online (Sandbox Code Playgroud) 我必须在给定的N个数(不包括N个)的范围内计算3和5(包括它们自己)的所有倍数的总和。我创建了一个python代码,它适用于N = 10,但不适用于N =100。我不明白为什么。
这是代码:
#!/bin/python3
import sys
def multiples_sum(n):
sum1 = 0
for i in range(n):
if i % 3 == 0:
sum1 = sum1 + i
if i % 5 == 0:
sum1 = sum1 + i
return sum1
t = int(input().strip())
for a0 in range(t):
n = int(input().strip())
print(multiples_sum(n))
Run Code Online (Sandbox Code Playgroud) 说我有2个变量x和y,我想遍历其间的所有值,而不知道是否x或y更大:
if(x>y):
for i in range(y,x):
#Code
elif(x<y):
for i in range(x,y):
#Code
Run Code Online (Sandbox Code Playgroud)
没有所有if-else条件的Pythonic方法是什么?顺序无关紧要,降序或升序都可以,但是一般的答案会很好!
我有字符串格式的 python 函数,我想在程序范围内获取这些函数的 python 对象。我已经尝试过exec(),eval()但ast.literal_eval()这些都没有返回函数对象。
例如:
s = "def add(args):\n try:\n return sum([int(x) for x in args])\n except Exception as e:\n return 'error'\n
Run Code Online (Sandbox Code Playgroud)
这是字符串中的一个简单函数,用于添加列表元素。我正在寻找一个可以返回函数对象的实用模块add
function_obj = some_function(s)
print 'type:', type(function_obj)
type: <type 'function'>
Run Code Online (Sandbox Code Playgroud) 我这里有一个字符串:
s0 = 'Ready1 Origin1 Destination1 Type1 Rate1 Phone1 # Pro1 #'
Run Code Online (Sandbox Code Playgroud)
以下变量的计算如下:
is_head = len([i.group() for i in re.finditer(r"(\s+){2,}", s0)]) >= 3
Run Code Online (Sandbox Code Playgroud)
这给了我True对我来说正确且预期的结果。现在我有另一个变量cont_,它可能包含 到 之间的任何2值6。我想根据 的值将正则表达式从 更改r"(\s+){2,}"为。我想获取变量而不为每种情况声明单独的正则表达式。为此,我需要使用 f 字符串以及当前用于正则表达式检查的原始字符串。我已经尝试过这些:r"(\s+){6,}"cont_is_head
>>> len([i.group() for i in re.finditer(fr"(\s+){{cont_},}", s0)]) >= 3
File "<stdin>", line 1
SyntaxError: f-string: single '}' is not allowed
>>> len([i.group() for i in re.finditer(rf"(\s+){{cont_},}", s0)]) >= 3
File "<stdin>", line 1
SyntaxError: f-string: single '}' …Run Code Online (Sandbox Code Playgroud) 我有一个字符串:
a = '0202201131181'
Run Code Online (Sandbox Code Playgroud)
我想用单个替换所有多次出现的1in a,1如果只找到一次出现'1',则用空字符串''替换它.
我的最终目标是获得:
a = '0202201318'
Run Code Online (Sandbox Code Playgroud)
在这里,'8'字符后面的'1'只出现一次,所以它被空字符串替换,但字符'3'之前的'11'和字符'3'之后的'11'被'1'取代.
这是我尝试过的if-else代码块,部分正确:
if '11' in a:
a = a.replace("11","1")
else:
a = a.replace("1","")
Run Code Online (Sandbox Code Playgroud)
但它输出'02022013181',这是不正确的.这该怎么做?
我有以下元组列表.
[('0', 'Hadoop'), ('0', 'Big Data'), ('0', 'HBas'), ('0', 'Java'), ('0', 'Spark'), ('0', 'Storm'), ('0', 'Cassandra'), ('1', 'NoSQL'), ('1', 'MongoDB'), ('1', 'Cassandra'), ('1', 'HBase'), ('1', 'Postgres'), ('2', 'Python'), ('2', 'skikit-learn'), ('2', 'scipy'), ('2', 'numpy'), ('2', 'statsmodels'), ('2', 'pandas'), ('3', 'R'), ('3', 'Python'), ('3', 'statistics'), ('3', 'regression'), ('3', 'probability'), ('4', 'machine learning'), ('4', 'regression'), ('4', 'decision trees'), ('4', 'libsvm'), ('5', 'Python'), ('5', 'R'), ('5', 'Java'), ('5', 'C++'), ('5', 'Haskell'), ('5', 'programming languages'), ('6', 'statistics'), ('6', 'probability'), ('6', 'mathematics'), ('6', 'theory'), ('7', …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 matplotlib 和 scipy 使用线性函数在 .txt 文件中拟合并绘制简单数据(a*x+b)。我遇到了有关测试功能的错误:"can't multiply sequence by non-int of type 'numpy.float64'"
我尝试过更改变量名称x,但遇到了同样的问题。大多数代码来自一个工作代码,该代码能够毫无问题地拟合数据,并对测试函数使用相同的定义。
import matplotlib.pyplot as plt
from scipy import optimize
import numpy as np
f=open("testData.txt","r")
x_data=[]
y_data=[]
trash=f.readline() #discards first line
for line in f: #reads x and y data from file
x_read,y_read=line.split()
x_data.append(float(x_read))
y_data.append(float(y_read))
def test_func(x, a, b):
return a*x+b
params, params_covariance = optimize.curve_fit(test_func, x_data, y_data,
p0=[1, 1])
plt.figure(figsize=(6, 4))
plt.scatter(x_data, y_data)
plt.plot(x_data, test_func(x_data, params[0], params[1]), label='Fitted
function')
plt.show()
Run Code Online (Sandbox Code Playgroud)
这是错误:
回溯(最近一次调用最后一次): …
我正在运行一个 python 脚本,用于pandas.read_csv导入 csv 文件。当 Pandas 没有看到预期的内容时,它会提供控制台警告,例如:
Skipping line 163: Expected 41 fields in line 163, saw 42
Run Code Online (Sandbox Code Playgroud)
我如何将其记录到文本文件中?
如果我从命令行运行脚本,python > logfile.txt则文件中仅显示 print 的输出,而不显示警告。
我已经搜索了许多关于基于某些参数(例如所有 txt 文件)删除多个文件的答案。不幸的是,我还没有看到任何将较长的文件列表保存到 .txt(或 .csv)文件并希望使用该列表从工作目录中删除文件的内容。
我将当前的工作目录设置为 .txt 文件所在的位置(带有要删除的文件列表的文本文件,每行一个)以及 ~4000 .xlsx 文件。在 xlsx 文件中,我想删除大约 3000 个(在 .txt 文件中列出)。
这是我到目前为止所做的:
import os
path = "c:\\Users\\SFMe\\Desktop\\DeleteFolder"
os.chdir(path)
list = open('DeleteFiles.txt')
for f in list:
os.remove(f)
Run Code Online (Sandbox Code Playgroud)
这给了我错误:
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'Test1.xlsx\n'
Run Code Online (Sandbox Code Playgroud)
我觉得我错过了一些简单的东西。任何帮助将不胜感激!
谢谢
python ×9
python-3.x ×4
data-fitting ×1
dataframe ×1
f-string ×1
list ×1
loops ×1
matplotlib ×1
pandas ×1
python-2.7 ×1
python-3.7 ×1
regex ×1
scikit-learn ×1
scipy ×1
string ×1