我从pandas中的csv获得了一个相当大的数据帧. 问题是在某些列上我得到了一些文本字符串,我想隔离最后一个字符以将其转换为整数. 我找到了解决方案,但我相信它不是最有效的. 它是这
问题是在某些列上我得到了一些文本字符串,我想隔离最后一个字符以将其转换为整数.
我找到了解决方案,但我相信它不是最有效的.
它是这样的:
import pandas as pd df = pd.read_csv("filename") cols = list(df.loc[:, 'col_a':'column_s']) df_filtered = df[cols].dropna() df_filtered['col_o'] = df_filtered['col_o'].str[-1:] df_filtered['col_p'] = df_filtered['col_p'].str[-1:] df_filtered['col_q'] = df_filtered['col_q'].str[-1:] df_filtered['col_r'] = df_filtered['col_r'].str[-1:] df_filtered['col_s'] = df_filtered['col_s'].str[-1:]
在写作方面,这并不是真正有效的.所以我尝试过这样的事情:
colstofilter = list(df_filtered.loc[:, 'col_o':'col_s']) for col in df_filtered[colstofilter]: print(df_filtered[col].str[-1:].head())
打印它给出了我想要的,但当我尝试将其转换为函数或lamba或将其应用于数据帧时,我得到一个错误,它不支持
试试这个:df_filtered.loc[:, 'col_o':'col_s'] = \ df_filtered.loc[:, 'col_o':'col_s'].apply(lambda x: x.str[-1])