从列表中获取前两个值

时间:2018-06-24 06:11:30

标签: python python-3.x pandas

在我正在查看的文件的第一列中,它读取7个不同的逗号分隔值的列表,如下所示: 亚历克斯,43,37,12,1,2,5

以相同的方式设置了2000多行。

我只对前2个感兴趣,其余对我来说并不重要。我正在尝试将前两个值分配到数据框中的单独列中,如下所示:

 typesx = (line.split(",") for line in df['firstcolumn'])
ty=((type[0], type[1]) for type in typesx)
for z in range(len(df)):
    df['firstplaceholder'][z] = type(0)
    df['secondplaceholder'][z] = type(1)

但是,这只会将类型放入相应的列(即int,string),如图。

我很困惑,因为如果我选择打印0型和1型,它将打印出我要查找的内容(在本例中为alex,43)。 像这样:

for a,b in ty:

    print(a,b)

但是,我不确定如何将这些值复制到我创建的单独的列(firstplaceholder,secondplaceholder)中。

2 个答案:

答案 0 :(得分:1)

在我看来,您在检索值时犯了错误。尝试下面的代码。

df['firstplaceholder'][z] = ty[z][0] df['secondplaceholder'][z] = ty[z][1]

答案 1 :(得分:0)

df=pd.DataFrame(data={"1":["a,bb,c,d"],"2":["n,g,r,h,l"]},index=['firstcolumn']).T

df['secondcolumn']=df['firstcolumn'].apply(lambda s:s.split(',')[1])
df['firstcolumn'] =df['firstcolumn'].apply(lambda s:s.split(',')[0])