首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将多个csv文件的选定列连接到一个数据框中?木星

如何将多个csv文件的选定列连接到一个数据框中?木星
EN

Stack Overflow用户
提问于 2018-02-08 11:18:25
回答 3查看 762关注 0票数 1

我有点困惑,因为下面的方法似乎是有效的:

代码语言:javascript
复制
raw_data_df = pd.DataFrame()


temp = pd.read_csv('/Users/bob/desktop/Research_data/tobii/42r-export.csv', sep = ',', encoding = 'latin-1')
raw_data_df['1'] = temp['Gaze point X']
raw_data_df['2'] = temp['Gaze point Y']

但是,以下操作不起作用:

代码语言:javascript
复制
for i in files:
  temp = pd.read_csv(path + i , sep = ',', encoding = 'latin-1')
  print(temp['Gaze point X'])
  raw_data_df[i+"x"] = temp['Gaze point X']
  raw_data_df[i+"y"] = temp['Gaze point Y']

文件的位置

代码语言:javascript
复制
path = "/Users/bob/desktop/Research_data/tobii/"
files = [f for f in listdir(path) if isfile(join(path,f))]

我没有返回列名为i+"x“或i+"y”的pandas数据框,而是得到了一个列表列表。

以下是使用raw_data_df输出的内容示例

代码语言:javascript
复制
132660     857
132661     846
Name: Gaze point X, Length: 132662, dtype: int64
0      1206
1      1204
2      1205
3      1205

如何将多个csv文件的选定列连接到一个数据框中?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-08 11:26:45

我不认为有任何需要初始化一个空的数据帧。您可以遍历文件,只加载所需的列(使用usecols),然后在最后连接所有数据帧。

此外,在连接路径工件时,请使用os.path.join

代码语言:javascript
复制
import os

cols = ['Gaze point X', 'Gaze point Y']

df_list = []
for f in files:
    temp = pd.read_csv(
         os.path.join(path, f), sep=',', encoding='latin-1', usecols=cols
    )
    temp.columns = [f + i for i in ['x', 'y']]
    df_list.append(temp)

现在,只需将数据帧与pd.concat连接起来。

代码语言:javascript
复制
df = pd.concat(df_list, axis=1)
票数 0
EN

Stack Overflow用户

发布于 2018-02-08 11:38:39

很抱歉,我正在搜索的文件中有一个ds.store文件,它遍历了所有内容。我刚刚删除了它,它正在工作。

票数 0
EN

Stack Overflow用户

发布于 2018-02-08 12:04:51

@COLDSPEED's solution的基础上,你可以使用列表理解:

代码语言:javascript
复制
def rename_cols(df, f):
    df.columns = [f + i for i in ['x', 'y']]
    return df

df = pd.concat([rename_cols(pd.read_csv(os.path.join(path, f),
                sep=',', encoding='latin-1', usecols=cols), f) for f in files],
                ignore_index=True)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48676983

复制
相关文章

相似问题

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