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)
你已经有了两个非常好的答案,但是让我提出一些建议.
dataset_code列,请pd.read_csv直接告诉(usecols=['dataset_code'])而不是将整个文件加载到内存中,以便立即对数据帧进行子集化.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)