我正在嘗試將資料從文本檔案傳輸到 csv。我的文本檔案包含很多由 /n 分隔的行。
a: data
b: data2
$e = data3
number
a: data4 and so on
我需要一列 for a,b,一列用于 $ 起始行和=or:符號后的資料列。
有人可以幫我一個起點嗎?:)
uj5u.com熱心網友回復:
txt = """a: data
b: data2
$e = data3
number
a: data4"""
txt_lines = txt.split("\n")
df_dict = dict()
for line in txt_lines:
if ":" in line or "$" in line:
# remove special character
column = line.split()[0].replace("$", "").replace(":", "")
# if column exists get row, if not, get empty list
row = df_dict.get(column, list())
# think as last word to data and update row
row.append(line.split()[-1])
# update dictionary
df_dict.update({column: row})
else:
# if ":" or "$" not exists in text, then think as number
column = 'number'
# if column exists get row, if not, get empty list
row = df_dict.get(column, list())
# update row
row.append(line)
# update dictionary
df_dict.update({column: row})
df = pd.DataFrame(dict([(k, pd.Series(v)) for k,v in df_dict.items()]))
df 看起來像。
a b e number
0 data data2 data3 number
1 data4 NaN NaN NaN
如果您在閱讀如何創建最小的、可重現的示例后提出疑問,那么人們會更好地幫助您
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/493033.html
