csv 垂直连接多个边框

nnvyjq4y  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(71)

我想垂直连接多个字符串。我的每个字符串都是从目录中的一个文件创建的,我想连接所有的字符串。我可以对每个单独的文件这样做:

df1 = pd.read_csv('C:/Users/Desktop/folder/file1.csv', usecols = 'name')
df2 = pd.read_csv('C:/Users/Desktop/folder/file1.csv', usecols = 'reads')

result = pd.concat([df1, df2], axis=1)

字符串
但是,我必须一次对每个单独的文件执行此操作。我尝试将值保存在一个空数组中,如下所示:

for file in glob.glob('C:/Users/Desktop/folder/file*.csv'):

    df1 = pd.read_csv(file, usecols='name')
    df2 = pd.read_csv(file, usecols='reads')

    collected_columns.append(df1['name'])
    collected_columns.append(df2['reads'])
    
final_df = pd.concat(df1, df2, join='outer', axis=1, sort=True)

# dataframe to csv
final_df.to_csv('C:/Users/Desktop/folder/TEST.csv')


但是这会导致每个文件中的每一列都是并排的。我希望这是有意义的,如果有人能帮助我,我会非常感激!

tnkciper

tnkciper1#

让我们假设第一次连接的结果如下:

first_concat = pd.concat([df1, df2], axis=1)
    name    reads
0   Joe     1
1   Jack    2
2   John    3

字符串
你有另一个文件,基于它你有另一个串联(与第一个文件相同的代码):

second_concat = pd.concat([df3, df4], axis=1)

    name    reads
0   Ava     11
1   Adam    22


为了使这两个垂直,你应该做:

all_df = [first_concat, second_concat]
final_df = pd.concat(all_df, ignore_index=True)

    name    reads
0   Joe     1
1   Jack    2
2   John    3
3   Ava     11
4   Adam    22


然后你可以在你的for loop中轻松使用它:

all_df = []
for file in glob.glob('C:/Users/Desktop/folder/file*.csv'):
    df1 = pd.read_csv(file, usecols='name')
    df2 = pd.read_csv(file, usecols='reads')
    df_nr_concat = pd.concat([df1, df2], axis=1)
    all_df.append(df_nr_concat)
final_df = pd.concat(all_df, ignore_index=True)

d7v8vwbk

d7v8vwbk2#

垂直连接多个字符串。这里我提供了代码和输出:
验证码:

import pandas as pd

example_data_1 = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Salary': [50000, 60000, 70000]
}
df1 = pd.DataFrame(example_data_1)

example_data_2 = {
    'Name': ['David', 'Emily', 'Frank'],
    'Age': [28, 22, 33],
    'Salary': [72000, 48000, 53000]
}
df2 = pd.DataFrame(example_data_2)

Concatenated_df = pd.concat([df1, df2], ignore_index=True)
print("Concatenated DataFrame:")
print(Concatenated_df)

字符串

输出:

Concatenated DataFrame:
Name  Age  Salary
0    Alice   25   50000
1      Bob   30   60000
2  Charlie   35   70000
3    David   28   72000
4    Emily   22   48000
5    Frank   33   53000

  • 如果此代码适合您。请投赞成票。*

相关问题