在两个电子表格之间链接数据

2024-09-27 21:33:17 发布

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

我对Python和熊猫非常陌生,所以如果我问了一些冗长、愚蠢的问题,我深表歉意。不管怎么说,我一直在写一个脚本来自动化工作中的一些日常活动。我将原始数据设置为csv,包含超过6000行和150列,因此首先我提取了我特别需要的数据:

import pandas as pd

raw_data = pd.read_csv(r"C:\Users\cherp2\Desktop\test.csv")
data_drill = raw_data.query('Activity == "DRILL"')
grouped_data = data_drill.groupby([data_drill['PeriodStartDate']
                           .str[:10], 'Blast'])['Calc_DRILLING_Holes']
                           .sum().reset_index().sort_values('PeriodStartDate')

最终数据如下

grouped_data
Out[9]: 
    PeriodStartDate   Blast  Calc_DRILLING_Holes
0        1/09/2019   6317.0           148.479262
1        1/09/2019   7253.0           127.876096
2        1/09/2019   8140.0            87.133628
3        1/10/2019   2040.0            92.911575
4        1/10/2019   2379.0           188.958478

现在我需要将这些数据与另一个基于爆炸数的电子表格相关联。第二个电子表格包含我需要将Calc_DRILLING_Holes乘以才能得到最终结果的因子

1)首先,我们有一个小问题,即最终输出中的Blast是浮点类型。我怎么把它们都变成正整数呢

2)其次,当我导入Excel数据时,由于某种原因,我在数据框中看不到任何东西。我就是这么做的:

df = pd.read_excel(r'C:\Users\cherp2\Desktop\BM_Inputs.xlsx')

df

数据是这样的:

206 ...
207 ...
208 ...
209 ...
210 ...
211 ...
212 ...

[213 rows x 7 columns]>

我不确定这是否是个问题。它确实正确地显示了行和列的数量,但我担心的是,它都是空的。有什么问题吗

3)最后,另一个电子表格中的Blast引用的格式是AA-BBB-CCCC,其中CCCC部分是我需要与fromgrouped_data数据帧匹配的部分

为此,我尝试:

grouped_data['sampling factor'] = grouped_data.Blast.map(df['Pattern']
                                                  .str[7:11]
                                                  .set_index('Blast'))

但是我得到一个错误:AttributeError: 'Series' object has no attribute 'set_index'

是什么原因造成的

谢谢你的帮助

帕夫


Tags: csv数据dfdataindexrawcalc电子表格

热门问题