首页 > 解决方案 > 从数据框中读取和拆分列值

问题描述

我有一个数据集,第二列看起来像这样。

FileName
892e7c8382943342a29a6ae5a55f2272532d8e04.exe.asm
2d42c1b2c33a440d165683eeeec341ebf61218a1.exe.asm
1fbab6b4566a2465a8668bbfed21c0bfaa2c2eed.exe.asm

现在,我想从列中提取“.exe.asm”之前的名称,并将其附加到数据集所有行的新列表中。我尝试了以下代码:

import pandas as pd
df = pd.read_csv("dataset1.csv")
exekey = []

for row in df.iterrows():
    exekey.append(row[1].split('.'))
exekey

此执行给了我以下错误:

AttributeError: 'Series' object has no attribute 'split'

我做不到。请帮忙

在更改时,输出的形式为输出图像

标签: pythonpython-3.xpandas

解决方案


使用索引拆分filename使用.和访问第一个元素。

import pandas as pd 

df = pd.DataFrame({'FileName':['892e7c8382943342a29a6ae5a55f2272532d8e04.exe.asm',
'2d42c1b2c33a440d165683eeeec341ebf61218a1.exe.asm',
'1fbab6b4566a2465a8668bbfed21c0bfaa2c2eed.exe.asm']})


exekey = [i.split(".")[0] for i in df['FileName']]
print(exekey)

替代方式

exekey2 = df['FileName'].apply(lambda x: x.split(".")[0]).tolist()

输出:

['892e7c8382943342a29a6ae5a55f2272532d8e04', '2d42c1b2c33a440d165683eeeec341ebf61218a1', '1fbab6b4566a2465a8668bbfed21c0bfaa2c2eed']

推荐阅读