Python 如何根据数据帧中由逗号分隔的每个值的长度拆分字符串?
我有一个类似H33、H431、H450的字符串,希望根据每个值的长度(用逗号分隔)将它们拆分为两个字符串。例如,在这个例子中,每个字符串的长度是3,4,4,我希望得到2个字符串H33和H431,H450 这最初是一个名为icd的数据帧,其列是第4列,如下所示。它包含具有特定数字长度的代码字符串。我的目标是将此列拆分为两列,其中包含具有特定数字长度的代码。所以我尝试使用for循环来实现这一点,但它没有提供我所需要的。我不确定这是不是最好的办法。认为apply可能更好,但不确定如何实现 对于icd.itertuples中的i: 对于i[4]中的substr,拆分“,”: 如果lensubstr.strip==3: 打印条 如果lensubstr.strip==4: 打印条 我不确定是否有一种更优雅的方式来完成任务而不使用for循环Python 如何根据数据帧中由逗号分隔的每个值的长度拆分字符串?,python,Python,我有一个类似H33、H431、H450的字符串,希望根据每个值的长度(用逗号分隔)将它们拆分为两个字符串。例如,在这个例子中,每个字符串的长度是3,4,4,我希望得到2个字符串H33和H431,H450 这最初是一个名为icd的数据帧,其列是第4列,如下所示。它包含具有特定数字长度的代码字符串。我的目标是将此列拆分为两列,其中包含具有特定数字长度的代码。所以我尝试使用for循环来实现这一点,但它没有提供我所需要的。我不确定这是不是最好的办法。认为apply可能更好,但不确定如何实现 对于icd.
def split(x, length):
splitted_string = x.split(',')
result = [substr.strip() for substr in splitted_string if len(substr.strip())==length]
result = ', '.join(result)
return result
df = pd.DataFrame({'a':["H33, H431, H450", "H21, H11, H521"]})
for length in [3, 4]:
df[length] = df['a'].apply(lambda x: split(x, length))
>>> df.drop(['a'], axis=1)
3 4
0 H33 H431, H450
1 H21, H11 H521