Gui*_*ard 6 python dataframe python-3.x pandas
我从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:]
Run Code Online (Sandbox Code Playgroud)
在写作方面,这并不是真正有效的.所以我尝试过这样的事情:
colstofilter = list(df_filtered.loc[:, 'col_o':'col_s'])
for col in df_filtered[colstofilter]:
print(df_filtered[col].str[-1:].head())
Run Code Online (Sandbox Code Playgroud)
打印它给出了我想要的,但当我尝试将其转换为函数或lamba或将其应用于数据帧时,我得到一个错误,它不支持
尝试这个:
df_filtered.loc[:, 'col_o':'col_s'] = \
df_filtered.loc[:, 'col_o':'col_s'].apply(lambda x: x.str[-1])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |