[英]How to convert "n" number of lines into .csv in python?
數據集(提取 2 個單獨的項目, n為每個項目 6 列):
1
No. of A
600
No. of B
2
No. of C
6
No. of A
500
No. of B
4
No. of C
...
使用 Python,將上述內容轉換並輸出到看起來像這樣的 .csv 的最佳方法是什么?
1,No. of A,600,No. of B,2,No. of C
6,No. of A,500,No. of B,4,No. of C
...
欣賞所有建議!
修改答案
body = """
1
No. of A
600
No. of B
2
No. of C
6
No. of A
500
No. of B
4
No. of C
7
No. of A
501
No. of B
5
No. of C
"""
temp_body = body.strip().split("\n")
parsed_body = [temp_body[(0 + i - 6):i] for i in range(6, len(temp_body) + 1, 6)]
import pandas as pd
df = pd.DataFrame(parsed_body)
df.to_csv('output.csv', sep=',', header=None, index=None)
結果
假設您的數據一致且干凈,您可以在雙換行符處拆分數據。 然后為每個項目用逗號替換換行符:
data = '''1
No. of A
600
No. of B
2
No. of C
6
No. of A
500
No. of B
4
No. of C'''
items = [item.replace('\n', ',') for item in data.split('\n\n')]
print('\n'.join(items))
# 1,No. of A,600,No. of B,2,No. of C
# 6,No. of A,500,No. of B,4,No. of C
假設\\n\\n
分隔了 2 個不同的行,那么您可以像這樣嘗試:
In [1]: body = """
...: 1
...: No. of A
...: 600
...: No. of B
...: 2
...: No. of C
...:
...: 6
...: No. of A
...: 500
...: No. of B
...: 4
...: No. of C
...: """
In [2]: parsed_body = [i.strip().split("\n") for i in body.split("\n\n")]
In [3]: parsed_body
Out[4]:
[['1', 'No. of A', '600', 'No. of B', '2', 'No. of C'],
['6', 'No. of A', '500', 'No. of B', '4', 'No. of C']]
獲得列表后,您可以使用 Python 中的 csv 模塊使用 csvwriter 並將其寫為 csv
如果 \\n\\n 不是我們的情況並且它是連續的,那么你可以嘗試這樣的事情(有點像黑客,但也許你可以想出更好的辦法):
In [43]: body = """
...: 1
...: No. of A
...: 600
...: No. of B
...: 2
...: No. of C
...: 6
...: No. of A
...: 500
...: No. of B
...: 4
...: No. of C
...: 22
...: No. of Q
...: 500
...: No. of R
...: 4
...: No. of S
...: """
In [44]: temp_body = body.strip().split("\n")
In [45]: parsed_body = [temp_body[(0 + i - 6):i] for i in range(6, len(temp_body) + 1, 6)]
In [46]: parsed_body
Out[46]:
[['1', 'No. of A', '600', 'No. of B', '2', 'No. of C'],
['6', 'No. of A', '500', 'No. of B', '4', 'No. of C'],
['22', 'No. of Q', '500', 'No. of R', '4', 'No. of S']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.