我很好奇为什么df[2]
不受支持,df.ix[2]
而且df[2:3]
两者都有效.
In [26]: df.ix[2]
Out[26]:
A 1.027680
B 1.514210
C -1.466963
D -0.162339
Name: 2000-01-03 00:00:00
In [27]: df[2:3]
Out[27]:
A B C D
2000-01-03 1.02768 1.51421 -1.466963 -0.162339
Run Code Online (Sandbox Code Playgroud)
我期望df[2]
以df[2:3]
与Python索引约定一致的方式工作.是否存在不支持单个整数索引行的设计原因?
我有一个DataFrame
4列,其中2列包含字符串值.我想知道是否有办法根据与特定列的部分字符串匹配来选择行?
换句话说,函数或lambda函数会做类似的事情
re.search(pattern, cell_in_question)
Run Code Online (Sandbox Code Playgroud)
返回一个布尔值.我熟悉语法,df[df['A'] == "hello world"]
但似乎无法找到一种方法来做同样的部分字符串匹配说'hello'
.
有人能指出我正确的方向吗?
我构造了一个从我的数据框中提取一行的条件:
d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]
Run Code Online (Sandbox Code Playgroud)
现在我想从特定列中获取值:
val = d2['col_name']
Run Code Online (Sandbox Code Playgroud)
但结果我得到一个包含一行和一列(即一个单元格)的数据帧.这不是我需要的.我需要一个值(一个浮点数).我怎么能在熊猫里做到这一点?
现在我CSV
每次运行脚本时都会导入一个相当大的数据帧.是否有一个很好的解决方案可以保持数据帧在运行之间始终可用,因此我不必花费所有时间等待脚本运行?
我在Python中有一个元组列表,我有一个条件,我想只在元组不在列表中时才占用分支(如果它在列表中,那么我不想接受if分支)
if curr_x -1 > 0 and (curr_x-1 , curr_y) not in myList:
# Do Something
Run Code Online (Sandbox Code Playgroud)
但这并不适合我.我做错了什么?
LEFT
| RIGHT
| FULL
)(INNER
| OUTER
)连接?merge
?join
?concat
?update
?谁?什么?为什么?!... 和更多.我已经看到了这些反复出现的问题,询问了pandas合并功能的各个方面.今天关于合并及其各种用例的大部分信息在几十个措辞严厉,不可搜索的帖子中都是分散的.这里的目的是为后代整理一些更重要的观点.
这个QnA应该是关于常见熊猫习语的一系列有用的用户指南的下一部分(参见关于转动的这篇文章,以及关于连接的这篇文章,我将在稍后介绍).
请注意,这篇文章并不是文档的替代品,所以请阅读它!一些例子来自那里.
您知道如何将DataFrame的索引或列作为NumPy数组或python列表获取吗?
我有一个像熊猫一样的数据框:
a b
A 1
A 2
B 5
B 5
B 4
C 6
Run Code Online (Sandbox Code Playgroud)
我希望按第一列分组,并将第二列作为行中的列表:
A [1,2]
B [5,5,4]
C [6]
Run Code Online (Sandbox Code Playgroud)
使用pandas groupby可以做这样的事吗?
如何找到特定列的值最大的行?
df.max()
会给我每列的最大值,我不知道如何得到相应的行.
我刚刚在代码中发现了一个逻辑错误,导致了各种各样的问题.我无意中做了一个按位AND而不是逻辑AND.
我更改了代码:
r = mlab.csv2rec(datafile, delimiter=',', names=COL_HEADERS)
mask = ((r["dt"] >= startdate) & (r["dt"] <= enddate))
selected = r[mask]
Run Code Online (Sandbox Code Playgroud)
至:
r = mlab.csv2rec(datafile, delimiter=',', names=COL_HEADERS)
mask = ((r["dt"] >= startdate) and (r["dt"] <= enddate))
selected = r[mask]
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,我收到了相当神秘的错误消息:
ValueError:具有多个元素的数组的真值是不明确的.使用a.any()或a.all()
为什么在使用按位操作时没有发出类似的错误 - 我该如何解决这个问题?