[英]how to use headers only once after using to_csv based on conditions in pandas?
我正在嘗試根據條件從另一個 txt 文件制作新的 txt 文件。 兩個 txt 文件具有相同的標題。 但是在使用“to_csv”之后,我在 output 中看到我們有超過 1 個 header。 我只需要一次 header。
代碼:
import pandas as pd
import glob
big_files = glob.glob('*.txt')
for small_file in big_files:
df = pd.read_csv(small_file, sep= '\t')
df[df['grade'].isin(['Good']) & df['area'].str.contains('Texas')].to_csv('out.txt',sep= '\t',index=False, mode = 'a')
print('ok')
Output:
grade area
Good Texas
Good Texas
Good Texas
grade area
Good Texas
Good Texas
Good Texas
預期 Output:
grade area
Good Texas
Good Texas
Good Texas
Good Texas
Good Texas
Good Texas
您可以將header
參數用於to_csv
方法:
import pandas as pd
import glob
big_files = glob.glob('*.txt')
header = True
for small_file in big_files:
df = pd.read_csv(small_file, sep= '\t')
(df[df['grade'].isin(['Good']) & df['area'].str.contains('Texas')]
.to_csv('out.txt', sep= '\t',
index=False, mode = 'a',
header=header))
header = False
print('ok')
解決這個問題的另一種方法是連接單獨的數據幀並且只寫出一次:
import pandas as pd
import glob
big_files = glob.glob('*.txt')
dfs = [pd.read_csv(file, sep= '\t') for file in big_files]
df = pd.concat(dfs)
df[df['grade'].isin(['Good']) & df['area'].str.contains('Texas')].to_csv('out.txt',sep= '\t',index=False)
print('ok')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.