【发布时间】:2020-03-09 02:56:37
【问题描述】:
我有这个数据框:
difer length
0 0.11 4
1 NaN 6
2 01_00532 54
3 NaN 32
4 NaN 12
5 0.10 12
6 Nan 123
我想用浮点值替换difer 列中的所有其他值。所以将所有值更改为 0.11 直到下一个浮点值 (0.10),然后用 0.10 重复。
difer length
0 0.11 4
1 0.11 6
2 0.11 54
3 0.11 32
4 0.11 12
5 0.10 12
6 0.10 123
对于第一部分(过滤列),我发现了一个类似的问题 filter float values.
该人建议使用pd.to_numeric 和布尔索引
但我不知道他为什么以df.SIC这种形式写列名。它对我不起作用:
df[pd.to_numeric(df.SIC, errors='coerce').isnull()]
对于第二部分(如何将所有值更改为 0.11 直到下一个浮点值(0.10)并用 0.10 重复),我不知道。
【问题讨论】:
-
另一个答案说将该列称为
SIC,因为这是它的名字!df.SIC和df['SIC']是按名称引用列的两种方式。但显然你的专栏被称为difer而不是SIC! -
至于“将所有值更改为 0.11 直到下一个浮点值”,这称为 “向前填充”。请参阅文档以获取
df.fillna(..., method='ffill')及其同义词df.ffill()
标签: python python-3.x regex pandas dataframe