Python 数据帧中整列的子字符串
我有一个熊猫数据帧“df”。在这个数据帧中,我有多个列,其中一个必须子串。 假设列名为“col”。 我可以运行下面这样的“for”循环,并对列进行子串:Python 数据帧中整列的子字符串,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个熊猫数据帧“df”。在这个数据帧中,我有多个列,其中一个必须子串。 假设列名为“col”。 我可以运行下面这样的“for”循环,并对列进行子串: for i in range(0,len(df)): df.iloc[i].col = df.iloc[i].col[:9] 但我想知道,是否有一个选项,我不必使用“for”循环,而是直接使用属性。我有大量的数据,如果我这样做,数据将需要很长的时间处理。使用带方括号的str访问器: df['col'] = df['col'].str[:9
for i in range(0,len(df)):
df.iloc[i].col = df.iloc[i].col[:9]
但我想知道,是否有一个选项,我不必使用“for”循环,而是直接使用属性。我有大量的数据,如果我这样做,数据将需要很长的时间处理。使用带方括号的
str
访问器:
df['col'] = df['col'].str[:9]
或:
使用带方括号的
str
访问器:
df['col'] = df['col'].str[:9]
或:
我需要将形式为nn.n%的字符串的单个列转换为浮点。我需要从每行的元素中删除%。数据框有两列
attend.iloc[:,1:2]=attend.iloc[:,1:2].applymap(lambda x: float(x[:-1]))
这是原始答案的延伸。在我的例子中,它接受一个数据帧,并对特定列中的每个值应用一个函数。该函数删除最后一个字符,并将剩余的字符串转换为浮点。我需要将格式为nn.n%的一列字符串转换为浮点。我需要从每行的元素中删除%。数据框有两列
attend.iloc[:,1:2]=attend.iloc[:,1:2].applymap(lambda x: float(x[:-1]))
这是原始答案的延伸。在我的例子中,它接受一个数据帧,并对特定列中的每个值应用一个函数。该函数删除最后一个字符并将剩余的字符串转换为浮点。如果列不是字符串,请使用aType转换:
df['col']=df['col'].astype(str).str[:9]如果列不是字符串,请使用astype转换:
df['col']=df['col'].astype(str).str[:9]很难说这是否是问题的答案。很难说这是否是问题的答案。这给了我一个可怕的
设置和copyWarning:
很棒的解决方案!但我很好奇在大数据集上哪一个更快。。。对于df['col']]中的x,将其与df['col']=[x[:9]进行比较怎么样?您可以将建议的解决方案与pd.options.mode.chained_assignment=None#default='warn'
一起使用,以消除警告。或者,你可以看看这些主题,然后浪费几分钟的时间:这给了我可怕的设置和copyWarning:
伟大的解决方案!但我很好奇在大数据集上哪一个更快。。。对于df['col']]
中的x,将其与df['col']=[x[:9]进行比较怎么样?您可以将建议的解决方案与pd.options.mode.chained_assignment=None#default='warn'
一起使用,以消除警告。或者,你可以看看这些话题,然后浪费几分钟的时间: