我试图创建一个程序,将采取最新的30个CSV文件中的数据文件夹,并计算某些列的总数。共有4列数据,第一列是标识符,其余的是与标识符相关的数据。举个例子:
文件1
Asset X Y Z
12345 250 100 150
23456 225 150 200
34567 300 175 225
文件2
Asset X Y Z
12345 270 130 100
23456 235 190 270
34567 390 115 265
我希望能够匹配两个csv中的资产#,以返回每列值,然后对每列执行计算。一旦我完成了这些计算,我也打算绘制各种数据。到目前为止,我唯一能完成的就是使用以下代码从CSV文件中提取所有数据:
csvfile = glob.glob('C:\\Users\\tdjones\\Desktop\\Python Work Files\\FDR*.csv')
listData = []
for files in csvfile:
df = pd.read_csv(files, index_col=0)
listData.append(df)
concatenated_data = pd.concat(listData, sort=False)
group = concatenated_data.groupby('ASSET')['Slip Expense ($)', 'Net Win ($)'].sum()
group.to_csv("C:\\Users\\tdjones\\Desktop\\Python Work Files\\Test\\NewFDRConcat.csv", header=('Slip Expense', 'Net WIn'))
我对Python非常陌生,所以任何方向都是受欢迎的。谢谢您!你知道吗
我想您需要为您的
listData
的代码pandas.concat添加所以它会变成:
之后,您可以将聚合函数与这个
concatenated_data
DataFrame
一起使用,例如:concatenated_data['A'].max()
、concatenated_data['A'].count()
、`groupby`等我可能还会在读取数据时将资产编号设置为索引,因为这有助于筛选数据。所以呢
然后你可以按照alexyu的建议去做,当你使用完之后,从一个特定的资产编号中挑选出所有的数据
如果只需要特定的输入,则通常需要在将数据帧附加到列表之前格式化数据帧中的数据。具体怎么做自然取决于你想要什么,也就是说,你执行什么样的计算。你知道吗
如果您想要一个只返回一个特定资产的所有数据的函数,您可以按照
尽管上面的性能如何取决于数据集的大小。类似于上面的方法需要搜索每一行并在每一行上执行几个高级函数,因此如果每个文件中有数百万行的数据,则可能会出现问题。你知道吗
此外,上面假设所有数据元素都是数字字符串(因此可以转换为整数或浮点)。如果不是这样,请将dtype参数保留在DataFrame定义之外,但请记住,返回的所有内容都存储为字符串。你知道吗
相关问题 更多 >
编程相关推荐