我有一系列的大的CSV文件 「basename.csv」 之類的第一個字符分割CSV文件:的Python:根據第一列
B1,3,5,6
B2,2, 1,5-
B3,1,9,0
C1,4,7,9
C2,1,9,3
C3,8,5,2
我想將它們分成不同的類似文件:
basename_B.csv
B1,3,5,6
B2,2,1,5
B3, 1,9,0
basename_C.csv
C1,4,7,9
C2,1,9,3
C3,8,5,2
我已經做過類似的事情在for循環和IFS過去,但我不知道是否有更有效的方法來做到這一點熊貓或任何其他。
SOLUTION
適應從@chthonicdaemon和@jezrael的解決方案,我想出了這個:
def split_csv():
for dfile in glob.glob('*.csv'):
df = pd.read_csv(dfile, header=None)
for letter, group in df.groupby(df[0].str[0]):
group.to_csv((os.path.splitext(dfile)[0]) + '_{}.csv'.format(letter), index=False, header=False)
split_csv()
你可以做'df.ix [:,df.columns.str.startswith( 'B')]'過濾的cols – EdChum
是的,謝謝你,事情是,我不知道哪個字母每個文件中是否存在。我當然可以創建一個獨特的字母列表並循環,但我想知道是否有更優雅的解決方案。另外,您的解決方案還可以獲取除第一個之外的列。 – mirix