作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究代表美国地区并包含州的 df。各州旁边有[编辑]。 2 个州之间的所有区域都属于上述州。我认为这应该可行,但由于某种原因它并没有改变 df 的值......知道这里发生了什么吗?你会怎么做?
这是 df
0 Alabama[edit]
1 Auburn
2 Florence
3 Jacksonville
4 Livingston
5 Montevallo
6 Troy
7 Tuscaloosa
8 Tuskegee
9 Alaska[edit]
10 Fairbanks
11 Arizona[edit]
12 Flagstaff
13 Tempe
14 Tucson
15 Arkansas[edit]
16 Arkadelphia
17 Conway
18 Fayetteville
19 Jonesboro
20 Magnolia
21 Monticello
22 Russellville
23 Searcy
24 California[edit]
25 Angwin
26 Arcata
27 Berkeley
28 Chico
29 Claremont
这是我的解决方案,不改变 df:
df['state'] = 'replace this'
edit = '\[edit\]'
for index, row in df.iterrows():
if edit in row['RegionName']:
st = df.loc[index, ['RegionName']]
df.loc[index, ['RegionName']] = None
df.iloc[index:, 1] = st
最佳答案
假设您的列名称是 regions
,您可以使用 str.extract
:
df.assign(
state=df.region.str.extract(r'(.*?)\[edit\]').ffill()
).mask(df.region.str.endswith('[edit]')).dropna()
region state
1 Auburn Alabama
2 Florence Alabama
3 Jacksonville Alabama
4 Livingston Alabama
5 Montevallo Alabama
6 Troy Alabama
7 Tuscaloosa Alabama
8 Tuskegee Alabama
10 Fairbanks Alaska
12 Flagstaff Arizona
13 Tempe Arizona
14 Tucson Arizona
16 Arkadelphia Arkansas
17 Conway Arkansas
18 Fayetteville Arkansas
19 Jonesboro Arkansas
20 Magnolia Arkansas
21 Monticello Arkansas
22 Russellville Arkansas
23 Searcy Arkansas
25 Angwin California
26 Arcata California
27 Berkeley California
28 Chico California
29 Claremont California
如果您想保留您所在地区列中的州,只需删除掩码
即可:
df.assign(
state=df.region.str.extract(r'(.*?)\[edit\]').ffill()
)
关于python - 使用 iterrows 更改行下面的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51913626/
我是一名优秀的程序员,十分优秀!