【发布时间】:2018-07-08 14:23:25
【问题描述】:
我想要一个 DataFrame,其中一列的顶行(称为“cat”)的值为“LOW”,框架的中部和底部的值为“MID”和“HI”。因此,对于 1,200 行的帧,cat 列的值计数应导致:
LOW 400
MID 400
HI 400
这应该很容易。但是,显然事实并非如此。无济于事,我尝试使用df.loc[-400:,["cat"]] = "HI" 选择和更改底部行
但是,这种方法确实适用于顶行:df.loc[:399,["cat"]] = "LOW"
下面的示例显示了一个工作示例,请注意它需要loc 和iloc。这是 pandas 可以改进的地方吗?
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.random([1200, 4]), columns=['A', 'B', 'C', 'D'])
df["cat"] = "MID"
df.loc[:399,["cat"]] = "LOW"
df.iloc[-400:,-1] = "HI" # The -1 selects the last column ('cat') - not ideal.
df.cat.value_counts()
【问题讨论】:
-
你也只能使用
.iloc