我有一个简单的数据帧df:
{'Testingthislongcolumnthatwouldbreakoracle': {0: 3, 1: 3, 2: 3},
'goodcolum': {0: 1, 1: 1, 2: 1},
'goodcolum2': {0: 2, 1: 2, 2: 2}}
我试图确定列的长度是否为>;30,如果是这样,请检查删除元音是否会增加列的长度<;=30如果是这样的话,我想去掉列名中的元音并将其保存回dataframe。以下是我到目前为止的情况:
for columnName in df:
charlength=len(columnName)
vowels=sum(list(map(columnName.lower().count, "aeiou")))
if charlength >= 31:
if charlength - vowels <= 31:
df[columnName] = df.columns([columnName]).str.replace('[aAeEiIoOuU]', '')
print(columnName, charlength,vowels)
df
但这并没有带来任何改变。最终结果将“TestingIsLongColumnThouldBreakracle”列更改为“TSTNGTHSLNGCLMNTHWLDBRKRCL”
尝试使用列的新名称创建列表
str.replace()
函数不是这样工作的。您需要分别用空字符串替换每个元音:另外,提醒一下,在对结果求和之前,您不需要将
map
转换为list
。实际上,这样做更有效相关问题 更多 >
编程相关推荐