簡體   English   中英

Python DataFrame 文本文件大量數據的數據分析

[英]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 

以下是我在處理這些數據時遇到的問題:

  1. 我只需要第二、三、六、七列數據。 這個問題,我相信我已經通過閱讀單獨的行並創建一個包含必要列的 dataframe 來解決上面的代碼。 如果有人有更好的方法,我願意接受建議。
  2. 我需要跳過第一行數據。 這個,開放的特征沒有skirows屬性,所以當我刪除第一行時,我也失去了從0開始的索引。有什么辦法解決這個問題嗎?
  3. 我需要生成的 dataframe 看起來像一個干凈整潔的 dataframe。 截至目前,它看起來像這樣:
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 

列下的所有內容都右對齊,看起來很奇怪。 任何想法如何解決這個問題?

  1. 我還需要能夠對數據列進行統計分析,並且能夠找到具有最高數據和最低數據的名稱,但由於某種原因,我總是會出錯,因為我認為,即使我'已將所有數據設置為 dataframe,dataframe 中的值正在讀取為對象,而不是整數、字符串、浮點數等。

所以,如果我的數據無法使用 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]

Output:

     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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM