您好,我正在尝试查找文件夹中所有文件的行数。我正在尝试对仅包含“.txt”文件的文件夹和包含“.csv”文件的文件夹执行此操作。
我知道获取单个“.txt”文件行数的方法如下:
file = open("sample.txt","r")
Counter = 0
Content = file.read()
CoList = Content.split("\n")
for i in CoList:
if i:
Counter += 1
print("This is the number of lines in the file")
print(Counter)
Run Code Online (Sandbox Code Playgroud)
而对于单个“.csv”文件来说是这样的:
file = open("sample.csv")
reader = csv.reader(file)
lines= len(list(reader))
print(lines)
Run Code Online (Sandbox Code Playgroud)
但是如何对文件夹中的所有文件执行此操作?也就是说,我如何在文件夹内的所有文件中循环每个过程,并且理想情况下,将输出导出到包含类似于以下列的 Excel 工作表中:
Filename Number of Rows
1.txt 900
2.txt 653
Run Code Online (Sandbox Code Playgroud)
等等等等。
非常感谢你的帮助。
当该行的每列中的所有单元格都为 0 或“nan”(ID 列除外,这将是一些唯一值)时,我需要从数据框中删除所有行,我已经尝试了下面的命令,但没有运气。预期的输出也粘贴在下面。先感谢您!
数据
df = pd.DataFrame({'id':[1,2,3,4],'a':[0,0,0,1], 'b':[0,1,'nan',1], 'c':['nan',1,0,1]})
id a b c
0 1 0 0 nan
1 2 0 1 1
2 3 0 nan 0
3 4 1 1 1
Run Code Online (Sandbox Code Playgroud)
命令
df.loc[df[(df != 0) & (df != ('nan'))].all(axis=1)]
Run Code Online (Sandbox Code Playgroud)
预期产出
id a b c
0 2 0 1 1
1 4 1 1 1
Run Code Online (Sandbox Code Playgroud) 对于 cols 变量中选择的所有 4 列,如果值大于(或等于)1.5,我想将它们设置为 1,否则为 0
我尝试过类似的事情:iris[(cols) > 1.5 , (cols) := 1, .SDcols = cols]
谢谢
对于下面的数据框,
df <- data.frame(id = c(rep(101, 4), rep(202, 3)),
status = c("a","b","c","d", "a", "b", "c"),
wt = c(100,200,100,105, 20,22,25),
ht = c(5.3,5.2,5,5.1, 4.3,4.2,4.1))
df
id status wt ht
1 101 a 100 5.3
2 101 b 200 5.2
3 101 c 100 5.0
4 101 d 105 5.1
5 202 a 20 4.3
6 202 b 22 4.2
7 202 c 25 4.1
Run Code Online (Sandbox Code Playgroud)
我想得到下面的输出:
> output
id status wt ht
1 101 a 100 5.3
2 101 b 200 5.2 …Run Code Online (Sandbox Code Playgroud) 我试图将列转换为R中的行,而不使用reshape(无法安装包).我收到的数据包括属性及其相应的指标.我想计算所有这些属性之间的统计相关性 - 总共16000个,有800万条记录.并非所有记录都具有相同数量的属性.
为此,我相信我必须将列转换为行,以便最终可以使用cor函数,例如cor(x [,1],x [,2:16000]).如果有某种方法可以通过属性使用cor函数,即属性1和2,属性1和3,属性1 ... N之间的相关性,这可能完全没有必要.任何帮助都将非常感激.
ID Attribute Metric1
[1,] 1 1 -1.6363007
[2,] 2 1 1.1483294
[3,] 3 1 2.1682566
[4,] 4 1 -1.1823649
[5,] 5 1 -1.3631378
[6,] 1 2 -1.1715544
[7,] 2 2 1.5164278
[8,] 3 2 -1.0110274
[9,] 4 2 -0.9421652
[10,] 5 2 -0.2105443
[11,] 6 2 -0.4143548
[12,] 7 2 -1.6170975
[13,] 8 2 1.2402303
[14,] 9 2 0.4460047
[15,] 7 3 0.1060407
[16,] 8 3 0.9796893
[17,] 9 3 0.9254911
[18,] …Run Code Online (Sandbox Code Playgroud) 我必须读取一个CSV文件,并且每行中的每个组合都需要运行一些方法.我希望将每一行视为测试用例.是否可以将行作为参数发送 - pytest参数化我的测试用例?你能告诉我一些关于如何做到这一点的想法吗?
这是伪代码:
class test_mytest:
def test_rows:
for row in csvreader:
run_method(row)
for onecol in row:
run_method2(onecol)
Run Code Online (Sandbox Code Playgroud)
我试过阅读pytest文档,但对我来说并不清楚.
这是我正在做的使用generate_tests hook for row作为param.我想知道如何为内部for循环函数做同样的事情 - 这个内部循环也应该作为测试用例收集
def pytest_generate_tests(metafunc):
read_csvrows()
for funcargs in metafunc.cls.params[metafunc.function.__name__]:
# schedule a new test function run with applied **funcargs
metafunc.addcall(funcargs=funcargs)
class TestClass:
params = {
'test_rows': rows,
}
def test_rows:
run_method(row)
for onecol in row:
test_method2(onecol)
Run Code Online (Sandbox Code Playgroud)
现在,我需要为-for循环调用test_method2生成报告(它是csv文件每行中列中元素列表的参数化方法).Pytest也需要收集那些作为测试用例.
感谢你的帮助.谢谢
我在matlab中有一个6 x 8矩阵,想要对行重新排序.我有一个简单的方法来转移特定的行吗?
为了我的目的,我想采取初始行1,2和3,并将它们重新排序为行4,5和6.初始行4应该是行2,行5应该是行3,行6应该是第1行.
谢谢!
我有一个大型数据集,我想特别挑选一些行,我想知道是否有人可以帮我这个?非常感谢你的帮助!!
例如,如果我只想挑选2/1/2008-5/1/2008加上9/1/2008-11/1/2008的行,我该怎么做?非常感谢你!!
有人可以帮忙吗?
date mpressure mxtemp
2008-01-01 1025.3 15.7
2008-01-02 1025.6 16.0 <
2008-01-03 1023.6 18.1 <
2008-01-04 1021.8 18.4 <
2008-01-05 1020.1 20.9 <
2008-01-06 1019.7 20.7
2008-01-07 1018.4 24.0
2008-01-08 1016.7 23.7
2008-01-09 1015.3 24.5 <
2008-01-10 1014.3 21.8 <
2008-01-11 1012.9 23.4 <
Run Code Online (Sandbox Code Playgroud)
然后我会得到这样的东西?
date mpressure mxtemp
2008-01-02 1025.6 16.0 <
2008-01-03 1023.6 18.1 <
2008-01-04 1021.8 18.4 <
2008-01-05 1020.1 20.9 <
2008-01-09 1015.3 24.5 <
2008-01-10 1014.3 21.8 <
2008-01-11 1012.9 23.4 <
Run Code Online (Sandbox Code Playgroud) 我有以下带有成绩的数组示例:
grades = np.array([[ 1, 1, 2, -3],[ 4, 5, 6, 7],[ 8, 9, -3, 11],[12, 13, 14, 15]])
Run Code Online (Sandbox Code Playgroud)
我想用"-3"标识元素并将它们的整行更改为该数字,例如结果:
grades = np.array([[ -3, -3, -3, -3],[ 4, 5, 6, 7],[ -3, -3, -3, -3],[12, 13, 14, 15]])
Run Code Online (Sandbox Code Playgroud)
到目前为止我试过:
grades[np.argwhere(grades==-3)]=-3
Run Code Online (Sandbox Code Playgroud)
但我得到以下结果,其他行也受到影响:
array([[-3, -3, -3, -3],[ 4, 5, 6, 7],[-3, -3, -3, -3],[-3, -3, -3, -3],[16, 17, 18, 19]])
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?谢谢!
我有一个带有许多变量的表,例如:
+-----------+------------+---------+-----------+--------+
| DateFrom | DateTo | Price | Discount | Cost |
+-----------+------------+---------+-----------+--------+
| 01jan17 | 01jul17 | 17 | 4 | 5 |
| 01aug17 | 01feb18 | 15 | 1 | 3 |
| 01mar18 | 01dec18 | 12 | 2 | 1 |
| ... | ... | ... | ... | ... |
+-----------+------------+---------+-----------+--------+
Run Code Online (Sandbox Code Playgroud)
但是我想分开这个,所以我有:
+------------+------------+----------+-------------+---------+-------------+------------+----------+-------------+-------------+
| DateFrom1 | DateTo1 | Price1 | Discount1 | Cost1 | DateFrom2 | DateTo2 | Price2 | Discount2 | …Run Code Online (Sandbox Code Playgroud)