首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >读取数据并将其设置为带有Pandas的DataFrame的索引

读取数据并将其设置为带有Pandas的DataFrame的索引
EN

Stack Overflow用户
提问于 2016-07-22 00:50:50
回答 2查看 66关注 0票数 2

我想遍历DataFrame的各行,并为新的DataFrame赋值。我像这样间接地完成了这项任务:

代码语言:javascript
复制
#first I read the data from df1 and assign it to df2 if something happens
counter = 0                         #line1
for index,row in df1.iterrows():    #line2
    value = row['df1_col']          #line3
    value2 = row['df1_col2']          #line4
    #try unzipping a file (pseudo code)                  
        df2.loc[counter,'df2_col'] = value  #line5
        counter += 1                        #line6
    #except
        print("Error, could not unzip {}")  #line7

#then I set the desired index for df2
df2 = df2.set_index(['df2_col'])  #line7

有没有办法直接在line5中将这些值赋给df2的索引?对不起,我原来的问题不清楚。我正在根据发生的事情创建一个索引。

EN

回答 2

Stack Overflow用户

发布于 2016-07-22 01:19:58

有很多方法可以做到这一点。根据您的代码,您所做的一切只是创建了一个带有来自df1.df1_col的值的索引的空df2数据帧。您可以直接这样做:

代码语言:javascript
复制
df2 = pd.DataFrame([], df1.df1_col)
#                   ^     ^
#                   |     |
# specifies no data, yet  |
#                        defines the index

如果您担心必须过滤df1,那么您可以这样做:

代码语言:javascript
复制
# cond is some boolean mask representing a condition to filter on.
# I'll make one up for you.
cond = df1.df1_col > 10
df2 = pd.DataFrame([], df1.loc[cond, 'df1_col'])
票数 3
EN

Stack Overflow用户

发布于 2016-07-22 00:58:07

不需要迭代,你可以这样做:

代码语言:javascript
复制
df2.index = df1['df1_col']

如果您确实想要迭代,请将其保存到列表并设置索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38510059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档