同时使用行索引和列名对熊猫数据集进行分组

时间:2020-02-12 16:48:22

标签: python-3.x pandas dataframe filter subset

在许多情况下,编写循环时,我发现自己需要同时通过行索引和列名对Pandas数据帧进行子集设置,但在Pandas中,我只知道使用.iloc或.loc进行子设置。分别。我的背景是R,这也许就是为什么它会不断出现。

举个例子,假设我有以下数据框:

import pandas as pd

df = pd.DataFrame({'Place':['Tiverton, RI','Newport, RI','Boston, MA','Hartford, CT','Bridgeport, CT','Providence, RI'], 'Year': [2019,2007,2019,2018,2000,2003]})

对于在“位置”列中具有“,RI”的每一行,我想在标题为“ RI”的新列中添加“是”字符串。我可以通过以下方式使用.iloc来做到这一点:

import numpy as np

df['RI'] = np.nan

for i in range(0, len(df)):
    if re.search(r'\, RI', df.iloc[i,0]):
        df.iloc[i,2] = 'yes'

但是,这对我来说似乎不是最佳实践,因为随着代码或数据的更改,该列索引可能会更改,然后我正在使用错误的列。在r中,我将遍历df [i,'Place']并替换为df [i,'RI']。 python / pandas中是否有任何类似的功能?我是否应该以不同的方式编写这些循环,从而完全避免这种情况?

感谢您提供任何澄清。

0 个答案:

没有答案