Foo*_*Bar 7 python types dataframe pandas
我有一个奇怪的数据集:
year firms age survival
0 1977 564918 0 NaN
2 1978 503991 0 NaN
3 1978 413130 1 0.731310
5 1979 497805 0 NaN
6 1979 390352 1 0.774522
Run Code Online (Sandbox Code Playgroud)
我将dtype前三列的整数转换为整数:
>>> df.dtypes
year int64
firms int64
age int64
survival float64
Run Code Online (Sandbox Code Playgroud)
但现在我想在这里根据索引搜索另一个表:
idx = 331
otherDf.loc[df.loc[idx, 'age']]
Traceback (most recent call last):
(...)
KeyError: 8.0
Run Code Online (Sandbox Code Playgroud)
这来自
df.loc[idx, 'age']
8.0
Run Code Online (Sandbox Code Playgroud)
为什么这会继续返回浮点值?我怎样才能执行查找otherDf?我是熊猫版0.15.
你得到一个浮点数,因为每一行包含混合float和int类型.选择行索引后loc,将整数转换为浮点数:
>>> df.loc[4]
year 1979.000000
firms 390352.000000
age 1.000000
survival 0.774522
Name: 4, dtype: float64
Run Code Online (Sandbox Code Playgroud)
所以选择age这里的条目df.loc[4, 'age']会产生1.0.
要解决此问题并返回一个整数,您可以使用loc仅从age列中进行选择而不是整个DataFrame:
>>> df['age'].loc[4]
1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2394 次 |
| 最近记录: |