使用python和指定的amoun组合2个csv文件

2024-05-08 17:18:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想结合2个文件的CSV数据,但不是所有的数据。 例如: a、 csv+b.csv,其中b.csv有20个数据。但我只想从中提取10个数据,然后再提取11-20个数据。或者第一个10和第二个10

然后将前10个数据插入.csv,将后10个数据也插入.csv 我的问题是,我怎样才能只获取特定的总数据?你知道吗

这是我的密码:

import pandas as pd

df1 = pd.read_csv('testNegatif.csv')
df2 = pd.read_csv('trainNegatif.csv', nrows=10)

output=df1.append(df2)
output.to_csv("output.csv", sep=',')

我希望返回我想要的结果,但实际结果是合并所有数据。你知道吗


Tags: 文件csv数据import密码pandasreadoutput
3条回答

不用熊猫。读取每个文件的行;从一个文件的数据到另一个文件添加十行;将结果写入另一个文件。你知道吗

with open('a.csv') as f:
    data = f.readlines()
with open('b.csv') as f:
    bdata = f.readlines()

data.extend(bdata[:10])

with open('output.csv', 'w'):
    f.writelines(data)

如果文件很大,并且您不想将全部内容读入内存,请使用一些itertools函数。你知道吗

import itertools
with open('a.csv') as a, open('b.csv') as b, open('output.csv', 'w') as out:
    first_ten = itertools.islice(b, 10)
    for line in itertools.chain(a, first_ten):
        out.write(line)

假设两个文件的列数相同。你知道吗

正如我在评论中提到的,您可以使用nrows

import pandas as pd

df1 = pd.read_csv('testNegatif.csv')
df2 = pd.read_csv('trainNegatif.csv', nrows=10)

output=df1.append(df2)
output.to_csv("output.csv", sep=',')

有关更多选项,请参见:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

import pandas as pd
import numpy as np
# Creating two dataframes with data that overlap, so we don't want all of the 'b' data.
# We want to strip off '3,4,5' as they exist in 'a' as well
#      Creating the data frames     
a = [1,2,3,4,5]
b = [3,4,5,6,7,8,9,10]

dfa = pd.DataFrame(a)
dfa.to_csv('one.csv', index=False)

dfb = pd.DataFrame(b)
dfb.to_csv('two.csv', index = False)
#                       -

#     Reading through the dataframes   -
one = pd.read_csv('one.csv')
two = pd.read_csv('two.csv')
#                       -

# Stripping off the first 3 data of 'two' the list
output = one.append(two[3:])
output.to_csv("output.csv", sep=',', index=False)
#                       -

我希望这能回答你的问题。对你来说最重要的部分是output = one.append(two[3:])。有更复杂的方法来做同样的事情,但这是最简单的。你知道吗

相关问题 更多 >