我使用用户ID密钥加入具有相同列/列名称的两个数据帧(a,b),并且在加入时,我必须提供后缀字符,以便创建它.以下是我使用的命令,
a.join(b,how='inner', on='userId',lsuffix="_1")
Run Code Online (Sandbox Code Playgroud)
如果我不使用这个后缀,我会收到错误.但我不希望列名更改,因为这会导致运行其他分析时出现问题.所以我想从结果数据帧的所有列名中删除这个"_1"字符.任何人都可以建议我删除Pandas数据帧中所有列的最后两个字符的有效方法吗?
谢谢
我有一个DataFrame,它有一个开放时间和一个关闭时间,我试图计算差异,以毫秒为单位.
我的代码目前是这样的
df = df.assign(Latency=lambda d: d.CloseTimeStamp - d.CreationTimeStamp)
df.Latency = df.apply(lambda d: d.Latency.total_seconds() * 1000., axis=1)
Run Code Online (Sandbox Code Playgroud)
但是,我想知道为什么我不能像这样的单行
df = df.assign(Latency=lambda d: (d.CloseTimeStamp - d.CreationTimeStamp).total_seconds() * 1000.)
Run Code Online (Sandbox Code Playgroud)
当我尝试后者时,我得到了 AttributeError: 'Series' object has no attribute 'total_seconds'
我对SonarQube的通配符使用感到困惑.假设我想忽略所有xml文件.我应该将*.xml放在全局源文件排除项中吗?但是它会忽略不同层中的xml文件,例如/foo/bar/file.xml和/ foo/bar/folder/folder2/xml吗?
我正在阅读关于循环的Python wiki ,它说
列表推导也在2.0版本中添加到Python中.它们提供了一种语法上更紧凑,更有效的编写上述for循环的方法:
但是,我发现当我测试这个时,我得到了一些意想不到的结果.
In [22]: def while_loop(n):
...: i = 0
...: while i < n:
...: i+=1
...:
In [23]: def while_loop_2(n):
...: while n > 0:
...: n-=1
...:
In [24]: def for_loop(n):
...: for _ in range(n):
...: pass
...:
In [30]: %timeit(for_loop(1000000))
10 loops, best of 3: 23.9 ms per loop
In [31]: %timeit(while_loop(1000000))
10 loops, best of 3: 37.1 ms per loop
In [32]: %timeit(while_loop_2(1000000))
10 loops, best of 3: 38 …Run Code Online (Sandbox Code Playgroud) 我DataFrame从一个已经设置为其中一个数据列的索引的库中获取了一个.将它设置为另一列的最简单方法是什么,保留原始索引列.
输入:
df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=['a','b','c'])
df = df.set_index('a')
b c
a
1 2 3
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)
输出:( fe从列a到列改变索引b)
a c
b
2 1 3
5 4 6
8 7 9
Run Code Online (Sandbox Code Playgroud) 我正在使用经度和纬度列表。每个内部列表都有一个额外的对或方括号。例如[[-87.77621462941525,-87.77676645562643,-87.77906119123564,]]。我想删除多余的括号,并保留为[-87.77621462941525,-87.77676645562643,-87.77906119123564,]。谢谢
这是我的场景。我正在向在某些情况下需要太长时间的网页发出请求。我希望当超过 10 秒没有从服务器发出响应时,请求被取消但没有收到任何错误。这是我当前的代码和我看到的错误。出现此错误时,我的代码结束。总之,我想发出一个 Web 请求并限制在 10 秒内没有答案,我完成请求并继续我的代码。
requests.post("www.webpage.com", headers = {'Content-type': 'application/x-www-form-urlencoded'}, data = {"conid":1,"event":5},timeout=10)
.
.
.
Run Code Online (Sandbox Code Playgroud)
当 10 秒过去时,我收到此错误
ReadTimeout: HTTPConnectionPool(host='www.webpage.com', port=80): Read timed out. (read timeout=10)
Run Code Online (Sandbox Code Playgroud)
出于保密原因,我没有放置真实的 url,但通常没有设置超时,它可以工作
我有一个像下面的代码段,抛出一个无效的语法错误:
lst = [0, 0, 0]
new_lst = [lst[-1] = i + 1 for i in range(3)]
Run Code Online (Sandbox Code Playgroud)
基本上,我想new_lst成为列表列表,其中每个列表都将是lst最后一个元素更改.任何想法如何在Python中执行此操作?
学习列比较。如何基于两列创建新列?
我可以做两种情况水果或蔬菜。但是对于第三个条件,做不到。:(
df
basket1 basket2
0 fruit fruit
1 vegetable vegetable
2 vegetable both
3 fruit both
Run Code Online (Sandbox Code Playgroud)
结果
纽迪夫
basket1 basket2 total
0 fruit fruit fruit
1 vegetable vegetable vegetable
2 vegetable both Unknown
3 fruit both fruit
Run Code Online (Sandbox Code Playgroud)
非常感谢你的帮助!
我正在为游戏编写一段代码,使用游戏中的坐标位置计算屏幕上所有对象之间的距离.最初我打算使用基本的Python和列表来做到这一点,但由于需要计算的距离数量会随着对象的数量呈指数级增长,我认为这样做可能会更快numpy.
我不是很熟悉numpy,而且我一直在用它来试验基本的代码.我写了一些代码来计算同一个函数numpy在常规Python中完成计算需要多长时间,并且numpy似乎总是花费比常规python更多的时间.
功能很简单.它从1.1开始,然后增加200,000次,将0.1添加到最后一个值,然后找到新值的平方根.这不是我在游戏代码中实际要做的事情,它将涉及从位置坐标中找到总距离矢量; 这只是我拼凑的快速测试.我已经在这里读到,数组的初始化在NumPy中需要更多的时间,所以我将两个numpy和python数组的初始化移到了它们的函数之外,但Python仍然比它更快numpy.
这是一些代码:
#!/usr/bin/python3
import numpy
from timeit import timeit
#from time import process_time as timer
import math
thing = numpy.array([1.1,0.0], dtype='float')
thing2 = [1.1,0.0]
def NPFunc():
for x in range(1,200000):
thing[0] += 0.1
thing[1] = numpy.sqrt(thing[0])
print(thing)
return None
def PyFunc():
for x in range(1,200000):
thing2[0] += 0.1
thing2[1] = math.sqrt(thing2[0])
print(thing2)
return None
print(timeit(NPFunc, number=1))
print(timeit(PyFunc, number=1))
Run Code Online (Sandbox Code Playgroud)
它给出了这个结果,表明普通Python的速度提高了3倍:
[ 20000.99999999 141.42489173]
0.2917748889885843 …Run Code Online (Sandbox Code Playgroud) 我想知道是否有一种简单直观的方法可以做到:
Select * From CSV File Where
Run Code Online (Sandbox Code Playgroud)
我搜索了网络,但是我找不到任何查询CSV文件的SQL类型语法.在R中,我可以这样做:
require(sqldf)
df <- read.csv.sql("C:\\your_path_here\\CSV1.csv", "select * from file where Name='Ryan'")
df
Run Code Online (Sandbox Code Playgroud)
我想知道Python中是否有类似的东西.
新手在这里使用python解释器。
为什么我不能对这个字符串列表进行排序?
>>> list = ['296098', '12805', '10445635', '11679960']
>>> print list.sort()
None
>>> print list.sort(key=float)
None
Run Code Online (Sandbox Code Playgroud)
为什么python无法为我排序此字符串列表?