我想根据以下数据集的索引号打印变量:
这里我使用了以下代码:
import pandas as pd
airline = pd.read_csv("AIR-LINE.csv")
pnr = input("Enter the PNR Number ")
index = airline.PNRNum[airline.PNRNum==pnr].index.tolist()
zzz = int(index[0])
print( "The flight number is " + airline.FlightNo[zzz] )
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError:只能将 str (不是“numpy.int64”)连接到 str
我知道错误是因为FlightNo变量包含int值。但我不知道如何解决。任何想法?
为什么我不能使用来匹配Pandas系列中的字符串in?在以下示例中,第一个评估意外导致False,但是第二个评估有效。
df = pd.DataFrame({'name': [ 'Adam', 'Ben', 'Chris' ]})
'Adam' in df['name']
'Adam' in list(df['name'])
Run Code Online (Sandbox Code Playgroud) 我对python pandas中的类型转换感到困惑
df = pd.DataFrame({'a':['1.23', '0.123']})
type(df['a'])
df['a'].astype(float)
Run Code Online (Sandbox Code Playgroud)
这df是一个熊猫系列,其内容是2个字符串,然后我可以应用于astype(float)这个熊猫系列,它正确地将所有字符串转换为浮点数.然而
df['a'][1].astype(float)
Run Code Online (Sandbox Code Playgroud)
给我AttributeError:'str'对象没有属性'astype'.我的问题是:怎么会这样?我可以将整个系列从字符串转换为浮点数,但我无法将此系列的条目从字符串转换为浮点数?
另外,我加载了我的原始数据集
df['id'].astype(int)
Run Code Online (Sandbox Code Playgroud)
它生成了ValueError:int()的无效文字,基数为10:''这个似乎表明我的内容中有空白df['id'].所以我通过打字来检查是否属实
'' in df['id']
Run Code Online (Sandbox Code Playgroud)
它说错了.所以我很困惑.
是否有任何函数来检查pandas中任何列的任何行中是否存在值,例如
columnA columnB columnC
"john" 3 True
"mike" 1 False
"bob" 0 False
Run Code Online (Sandbox Code Playgroud)
在上面的数据框架中,我想知道"mike"在整个数据框架的任何元素中是否有任何值,如果它存在,我想得到True- 否则得到False.
谢谢.
我正在实现一些搜索算法,numpy其中一个步骤是检查向量是否在矩阵中(作为行)。我以前用过np.isin,但我突然很好奇 python 关键字是否in有效。因此我对其进行了测试,发现它确实有效。
由于我没有找到任何 python 接口in(例如__add__for+或__abs__for abs),我相信in通过使用标准迭代器逻辑在 python 中进行硬连接,因此它应该比 -providednumpy慢np.isin。但在我做了一些测试之后,令人难以置信的是:
>>> a = np.int8(1)\n>>> A = np.zeros(2**24, \'b\')\n>>> %timeit a in A\n>>> %timeit np.isin(a, A)\n21.7 ms \xc2\xb1 1.58 ms per loop (mean \xc2\xb1 std. dev. of 7 runs, 10 loops each)\n310 ms \xc2\xb1 20.4 ms per loop (mean \xc2\xb1 std. dev. of 7 runs, 1 loop each)\n …Run Code Online (Sandbox Code Playgroud)