簡體   English   中英

在python中使用pandas創建多個輸出文件

[英]Creating Multiple output files using pandas in python

以下代碼檢查 SampleData.txt 並生成 Result1.txt。 我想從僅包含 1 列的相同數據創建另一個文件 Result2.txt。 我是熊貓的新手,無法弄清楚需要修改什么才能創建 Result2.txt

import pandas as pd
from tabulate import tabulate        
dl = []
with open('SampleData.txt', encoding='utf8', errors='ignore') as f:
    for line in f:
        parts = line.split()
        if not parts[3][:2].startswith('($'):
            parts.insert(3,'0')
        if len(parts) > 5:
            temp = ' '.join(parts[4:])
            parts = parts[:4] + [temp]
        parts[1] = int(parts[1])
        parts[2] = float(parts[2].replace(',', ''))
        parts[3] = float(parts[3].strip('($)').replace(',', ''))
        dl.append(parts)

headers = ['ID', 'TRANS', 'VALUE', 'AMOUNT', 'CODE']        
df = pd.DataFrame(dl,columns=headers)
pd.set_option('colheader_justify', 'center')
df = df.groupby(['ID','CODE']).sum().reset_index().round(2)
df = df.sort_values('TRANS',ascending=False)
df['AMOUNT'] =  '($' + df['AMOUNT'].astype(str) + ')'
df = df[headers]
print (df.head(n=40).to_string(index=False))
print()
df.to_csv("Out1.txt", sep="\t", index=None, header=None)

樣本數據.txt

0xdata1 1 2,200,000  test1(test1)
0xdata2 1 9,500,000,000 ($70.30)  test2(test2)
0xdata3 1 4.6 ($14.08)  test3(test3)
0xdata4 1 0.24632941  test4(test4)
0xdata5 1 880,000,000 ($1.94)  test5(test5)

Result1.txt #-- 很好,工作正常

0xdata1 1 2,200,000  test1(test1)
0xdata2 1 9,500,000,000 ($70.30)  test2(test2)
0xdata3 1 4.6 ($14.08)  test3(test3)
0xdata4 1 0.24632941  test4(test4)
0xdata5 1 880,000,000 ($1.94)  test5(test5)

Result2.txt #-- 需要額外的輸出以及我想要生成的內容

0xdata1
0xdata2
0xdata3
0xdata4
0xdata5

您可以只選擇要保存的列

df['ID'].to_csv("Out_ID.txt", sep="\t", index=None, header=None)

這應該可以解決您的問題!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM