【发布时间】:2021-10-13 14:57:51
【问题描述】:
我将 excel 数据读取为 pandas 的数据框,其中每一行都有两个非 NaN 值(其他都是 NaN)
| names | Unnamed:1 | Unnamed:2 | Unnamed:3 | ~ | Unnamed:19 | Unnamed:20 |
|---|---|---|---|---|---|---|
| NaN | NaN | 1.3 | NaN | ~(NaN) | 10.4 | NaN |
| NaN | NaN | NaN | 2.7 | ~(NaN) | NaN | 12.7 |
| ~ | ~ | ~ | ~ | ~ | ~ | ~ |
| name_ccdd | NaN | 1.3 | NaN | ~(NaN) | 9.3 | NaN |
| ~ | ~ | ~ | ~ | ~ | ~ | ~ |
| name_yyzz | 0.5 | NaN | NaN | ~4.7~ | NaN | NaN |
我想找到一个包含单词的特定行(例如“ccdd”)并以一般方式获取非 NaN 值(例如 1.3 和 9.3)
我做了一个布尔值,其中包含显示哪个行索引包含一个单词(例如“ccdd”)
import pandas as pd
import numpy as np
filename= '~/data.xlsx'
df = pd.read_excel(filename, engine='openpyxl')
mask = df[df.columns[0]].str.contains('ccdd')
print(mask)
0 NaN
1 NaN
2 False
3 False
4 False
5 True
6 False
7 False
8 False
9 False
10 False
11 False
12 False
13 False
第 5 行包含关于我想要获得两个浮点值的数据。但我不能走得更远。
在之前的一篇文章(Get row and column index of the value in Pandas df)中找到了类似的答案,但是不知道怎么用。
【问题讨论】: