python - 处理列中的每一行
问题描述
- 我正在尝试浏览“出生”列中的每一行
- 检查以“,”分隔的字符串的最后一部分是否以两个字符结尾 2.a. 如果是这样,我将在其上附加“US”。
因此,“Los Angeles, Ca”将是“Los Angeles, Ca, US”而“Bisacquino, Sicily, Italy”将保持不变
我想在一个函数中处理这个。
我已经尝试过了,但是在检查birthStr的长度时,它给了我所有行的长度
for row in subset.itertuples():
birthStr= subset['birth'].str.rsplit(",", 1).str[-1]
if len(birthStr) ==2:
subset.birth = birthStr + "," + "US"
解决方案
我们可以使用str
提供的方法pandas
来解决这个问题。让我们使用我在下面定义的以下数据框。
print(df)
place
0 Los Angeles, Ca
1 Bisacquino, Sicily, Italy
2 New York, NY
condition = df.place.str.split(',').str[-1].str.strip().str.len() == 2
df.loc[condition, 'place'] = df.place + ', US'
print(df)
place
0 Los Angeles, Ca, US
1 Bisacquino, Sicily, Italy
2 New York, NY, US
推荐阅读
- flutter - 如何在颤振应用程序中使用颤振模块?
- java - Micronaut ReactiveStreamsCrudRepository 中的 ID 始终为空
- angular - Angular 自定义验证器错误组已弃用:此 API 不是类型安全的
- project-reactor - Reactor Flux - 仅在完成时从 Publisher 发出
- google-cloud-dataflow - 是否可以在 FileIO 等接收器中跟踪指标?
- php - 我可以通过 ajax 与之交谈的 PHP/perl 服务器?
- r - 解串变量列表
- wordpress - 网站(WP)无法在国家(拉脱维亚)的多个地点运行
- groovy - 在 groovy 类中模拟特定方法
- java - 解析文件名以提取 Java 中的字符串部分