Python Pandas Dataframe附加行

PyN*_*oob 1 python dataframe python-2.7 pandas

我正在尝试将数据框值附加为行,但将其作为列附加.我有32个文件,我想从第二列(称为dataset_code)并附加它.但它创建了32行和101列.我想要1列和3232行.

import pandas as pd
import os



source_directory = r'file_path'

df_combined = pd.DataFrame(columns=["dataset_code"])

for file in os.listdir(source_directory):
    if file.endswith(".csv"):
            #Read the new CSV to a dataframe.  
            df = pd.read_csv(source_directory + '\\' + file)
            df = df["dataset_code"]
            df_combined=df_combined.append(df)



print(df_combined)
Run Code Online (Sandbox Code Playgroud)

Alb*_*oso 7

你已经有了两个非常好的答案,但是让我提出一些建议.

  1. 如果您只想要dataset_code列,请pd.read_csv直接告诉(usecols=['dataset_code'])而不是将整个文件加载到内存中,以便立即对数据帧进行子集化.
  2. 不是附加到最初为空的数据帧,而是收集数据帧列表并在最后一次连接它们.将行添加到大熊猫DataFrame是昂贵的(它必须创建一个全新的),所以你的方法创建65 DataFrame秒:一个在开始时,一个在读取每个文件时,一个在追加每个文件时 - 甚至可能多32个,子集化.我提出的方法只创建了33个,这是这种导入的常用习惯用法.

这是代码:

import os
import pandas as pd

source_directory = r'file_path'

dfs = []
for file in os.listdir(source_directory):
    if file.endswith(".csv"):
        df = pd.read_csv(os.join.path(source_directory, file),
                        usecols=['dataset_code'])
        dfs.append(df)

df_combined = pd.concat(dfs)
Run Code Online (Sandbox Code Playgroud)