python-3.x 如何选择所有同名的数据框列?[duplicate]

svdrlsy4  于 2023-02-06  发布在  Python
关注(0)|答案(3)|浏览(133)
    • 此问题在此处已有答案**:

Find column whose name contains a specific string(8个答案)
2天前关闭。
我正在基于csv导入创建 Dataframe :

ID, attachment, attachment, comment, comment
1, lol.jpg, lmfao.png, 'Luigi',
2, cat.docx, , 'It's me', 'Mario'

基本上,"附件"和"评论"列的数目对应于具有较大数目的所述附件和评论的行。由于我是从第三方软件导出CSV,因此我事先不知道会有多少附件和评论列。
使用pd.read_csv导入此CSV将创建以下 Dataframe
| | 识别号|附件|附件1|评论|评注1|
| - ------|- ------|- ------|- ------|- ------|- ------|
| 无|1个|lol.jpg|lmfao.png|路易吉||
| 1个|第二章|cat.docx||"是我"|"马里奥"|
是否有一种简单的方法可以选择所有附件/评论列?
例如attachments_df = imported_df.attachment.allcomments_df = imported_df['comment].??
谢谢。

knpiaxh1

knpiaxh11#

使用DataFrame.filter表示以string x x x x x x x x开始的列,可选地,使用.\d表示逗号,使用小数表示字符串结尾$

attachments_df = imported_df.filter(regex='^attachment\.*\d*$')
comments_df = imported_df.filter(regex='^comment\.*\d*$')
f4t66c6m

f4t66c6m2#

另一种可能的解决方案:

attachments_df = imported_df.loc[:,imported_df.columns.str.startswith('attachment')]
comments_df = imported_df.loc[:,imported_df.columns.str.startswith('comment')]
bprjcwpo

bprjcwpo3#

也可以使用filter函数的like属性:

imported_df.filter(like='attach')
'''
  attachment attachment.1
0    lol.jpg    lmfao.png
1   cat.docx          NaN

相关问题