从数据框中读取和拆分列值

时间:2019-04-23 04:55:39

标签: python python-3.x pandas

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

deleteLater()

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

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

此执行给我以下错误:

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

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

我无法做到。请帮助

更改后,输出格式为Output image

2 个答案:

答案 0 :(得分:1)

使用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']

答案 1 :(得分:0)

您可以像这样使用map.上分割并获取索引0

df['FileName'].map(lambda f : f.split('.')[0])

# Output

0    892e7c8382943342a29a6ae5a55f2272532d8e04
1    2d42c1b2c33a440d165683eeeec341ebf61218a1
2    1fbab6b4566a2465a8668bbfed21c0bfaa2c2eed
Name: FileName, dtype: object

如果您想获取姓名列表,

df['FileName'].map(lambda f : f.split('.')[0]).values.tolist()

# Output : ['892e7c8382943342a29a6ae5a55f2272532d8e04',
            '2d42c1b2c33a440d165683eeeec341ebf61218a1',
            '1fbab6b4566a2465a8668bbfed21c0bfaa2c2eed']