为了账号安全,请及时绑定邮箱和手机立即绑定

在单个 csv 文件上创建具有连续值的列

在单个 csv 文件上创建具有连续值的列

慕斯王 2023-02-22 17:26:38
我有一个很大的 csv 文件,我把它分成了六个单独的文件。我正在使用“for 循环”来读取每个文件并创建一个列,其中的值递增 1。whole_file=['100Hz1-raw.csv','100Hz2-raw.csv','100Hz3-raw.csv','100Hz4-raw.csv','100Hz5-raw.csv','100Hz6-raw.csv']first_file=Truefor piece in whole_file:    if not first_file:        skip_row = [0] # if it is not the first csv file then skip the header row (row 0) of that file    else:        skip_row = []    V_raw = pd.read_csv(piece)    V_raw['centiseconds'] = np.arange(len(V_raw)) #label each centisecond我的输出:我想要的输出有没有一种聪明的方法来做我想做的事。
查看完整描述

2 回答

?
森栏

TA贡献1810条经验 获得超5个赞

存储厘秒的最后一个值并从那里开始计数:


whole_file=['100Hz1-raw.csv','100Hz2-raw.csv','100Hz3-raw.csv','100Hz4-raw.csv','100Hz5-raw.csv','100Hz6-raw.csv']


first_file=True


## create old_centiseconds variable

old_centiseconds = 0


for piece in whole_file:

    if not first_file:

        skip_row = [0] # if it is not the first csv file then skip the header row (row 0) of that file

    else:

        skip_row = []

    V_raw = pd.read_csv(piece)


    # add old_centiseconds onto what you had before

    V_raw['centiseconds'] = np.arange(len(V_raw)) + old_centiseconds #label each centisecond


    # update old_centiseconds

    old_centiseconds += len(V_raw)


查看完整回答
反对 回复 2023-02-22
?
RISEBY

TA贡献1856条经验 获得超5个赞

正如我在评论中所说,您可能希望将数据视为一个 numpy 数组,因为这需要更少的内存。您可以通过将 .csv 文件作为 numpy 数组打开然后附加到一个空列表来实现。如果您想将这些 numpy 数组附加在一起,您可以.vstack。下面的代码应该能够做到这一点:


from numpy import genfromtxt


whole_file=['100Hz1-raw.csv','100Hz2-raw.csv','100Hz3-raw.csv','100Hz4-raw.csv','100Hz5-raw.csv','100Hz6-raw.csv']


whole_file_numpy_array = []


for file_name in whole_file:

    

    my_data = genfromtxt(file_name, delimiter=',')

    

    whole_file_numpy_array.append(file_name)

    

combined_numpy_array = np.vstack(whole_file_numpy_array)


查看完整回答
反对 回复 2023-02-22
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信