[英]Python DataFrame Data Analysis of Large Amount of Data from a Text File
我有以下代碼:
datadicts = [ ]
with open("input.txt") as f:
for line in f:
datadicts.append({'col1': line[':'], 'col2': line[':'], 'col3': line[':'], 'col4': line[':']})
df = pd.DataFrame(datadicts)
df = df.drop([0])
print(df)
我正在使用文本文件(未格式化)從中提取數據塊。 打開文本文件時,它看起來像這樣,除了規模更大:
00 2381 1.3 3.4 1.8 265879 Name
34 7879 7.6 4.2 2.1 254789 Name
45 65824 2.3 3.4 1.8 265879 Name
58 3450 1.3 3.4 1.8 183713 Name
69 37495 1.3 3.4 1.8 137632 Name
73 458913 1.3 3.4 1.8 138024 Name
以下是我在處理這些數據時遇到的問題:
Col1 Col2 Col3 Col4
2381 3.4 265879 Name
7879 4.2 254789 Name
65824 3.4 265879 Name
3450 3.4 183713 Name
37495 3.4 137632 Name
458913 3.4 138024 Name
列下的所有內容都右對齊,看起來很奇怪。 任何想法如何解決這個問題?
所以,如果我的數據無法使用 Python 函數進行分析,有誰知道我該如何解決這個問題以使數據能夠正確運行?
任何幫助將不勝感激。 我希望我已經清楚地列出了我所有的需求。 我是 Python 的新手,我不確定我是否使用了所有正確的術語。
您可以使用pandas.read_csv()
function輕松完成此操作。
txt2pd.txt
是一個文本文件,其中包含來自您上面的源代碼的復制/粘貼sep
使用正則表達式模式來分隔一個或多個連續的空格names
使用list
來創建列名skiprows
根據您的要求跳過第一行keep = ['col1', 'col3', 'col5', 'col6']
df = pd.read_csv('txt2pd.txt',
sep='\s+',
names=['col0', 'col1', 'col2', 'col3', 'col4', 'col5', 'col6'],
skiprows=1)
df = df[keep]
col1 col3 col5 col6
0 7879 4.2 254789 Name
1 65824 3.4 265879 Name
2 3450 3.4 183713 Name
3 37495 3.4 137632 Name
4 458913 3.4 138024 Name
使用df.describe()
您可以對 output 進行簡單的高級分析。 (任何進一步的事情都應該是一個新問題的主題。)
col1 col3 col5
count 5.000000 5.000000 5.000000
mean 114712.200000 3.560000 196007.400000
std 194048.545838 0.357771 61762.106621
min 3450.000000 3.400000 137632.000000
25% 7879.000000 3.400000 138024.000000
50% 37495.000000 3.400000 183713.000000
75% 65824.000000 3.400000 254789.000000
max 458913.000000 4.200000 265879.000000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.