首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pandas.DataFrame.from_records更改列名

pandas.DataFrame.from_records更改列名
EN

Stack Overflow用户
提问于 2018-11-02 11:19:42
回答 1查看 808关注 0票数 0

我键入这一行:

代码语言:javascript
复制
df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor("file1", ['colA','colB'])
#this line reads a file with the specified columns.

结果将第一列重命名为0,另一列重命名为1。

如果你在文件里看到。还有一个额外的columns参数。

要使用的列名。如果传递的数据没有与其关联的名称,则此参数将提供列的名称。否则,此参数指示结果中列的顺序。

问题是,整个代码都在一个循环中,指定这个列是不可能的,因为在每个循环中都会读取不同的列。如何保留初始列而不将其转换为0和1。

更新

代码语言:javascript
复制
dict1 = {'file_name_1': ['on_column', 'another_column'], 'file_name_2': ['again_column']}
for k, v in dict1.items():
    df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor(k, v))
    df['count_of_a_column']=[df['colA'].value_counts().loc[x] for x in df['colA']]

#When the df is made the column names are already ruined. 
#They are called 0 and 1 if they are two. Thus the last line of code won't 
#find the columns that imported.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-02 11:38:07

列标签可以修改。只需在创建dataframe之后显式地命名列:

代码语言:javascript
复制
for k, v in dict1.items():
    df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor(k, v))
    df.columns = v
    df['count_of_a_column']=[df['colA'].value_counts().loc[x] for x in df['colA']]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53117624

复制
相关文章

相似问题

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