首页 > 解决方案 > 处理列中的每一行

问题描述

  1. 我正在尝试浏览“出生”列中的每一行
  2. 检查以“,”分隔的字符串的最后一部分是否以两个字符结尾 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"

标签: pythonpandasbigdata

解决方案


我们可以使用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

推荐阅读