Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从列表中获取前2个值_Python_Python 3.x_Pandas - Fatal编程技术网

Python 从列表中获取前2个值

Python 从列表中获取前2个值,python,python-3.x,pandas,Python,Python 3.x,Pandas,在我正在查看的文件的第一列中,它读取7个不同的逗号分隔值的列表,如下所示: 亚历克斯,43,37,12,1,2,5 还有2000多行是以相同的方式设置的 我只对前两个感兴趣,其余的对我来说都不重要。我试图将前两个值分配到数据帧中的单独列中,如下所示: typesx = (line.split(",") for line in df['firstcolumn']) ty=((type[0], type[1]) for type in typesx) for z in range(len(df))

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

还有2000多行是以相同的方式设置的

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

 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)

但是,我不确定如何将这些值复制到我创建的单独列中(第一个占位符,第二个占位符)。

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

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

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

您如何阅读此CSV?是否打算在第一列中首先有多个值?@U8 Forward我想说这几乎可以保证,这就是为什么我在第一列中编辑了标记。首先,使用一个名为python关键字的东西来纠正现有的错误是不好的keyword@roganjosh不幸的是,这不是CSV。但是是的,文件就是这样设置的。@U8转发谢谢,我已将其更改为非python关键字。我还建议将所有出现的
type
更改为其他名称(例如,
val
type
是一个本机Python函数,以其他方式使用它是一个坏主意!真不敢相信我没试过这个。。非常感谢。
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])