पंडों के साथ txt से डेटा लोड करें


159

मैं एक txt फ़ाइल सम्‍मिलित कर रहा हूँ जिसमें फ्लोट और स्ट्रिंग डेटा का मिश्रण है। मैं उन्हें एक सरणी में संग्रहीत करना चाहता हूं जहां मैं प्रत्येक तत्व तक पहुंच सकता हूं। अब बस कर रहा हूं

import pandas as pd

data = pd.read_csv('output_list.txt', header = None)
print data

यह इनपुट फ़ाइल की संरचना है 1 0 2000.0 70.2836942112 1347.28369421 /file_address.txt:।

अब डेटा को एक अद्वितीय स्तंभ के रूप में आयात किया जाता है। मैं इसे कैसे विभाजित कर सकता हूं, इसलिए अलग-अलग तत्वों को अलग-अलग स्टोर करने के लिए (इसलिए मैं कॉल कर सकता हूं data[i,j])? और मैं हेडर को कैसे परिभाषित कर सकता हूं?

जवाबों:


217

आप उपयोग कर सकते हैं:

data = pd.read_csv('output_list.txt', sep=" ", header=None)
data.columns = ["a", "b", "c", "etc."]

sep=" "उद्धरणों के बीच एक रिक्त स्थान छोड़कर, अपने कोड में जोड़ें । तो पंडों को मानों के बीच रिक्त स्थान का पता लगा सकते हैं और स्तंभों में क्रमबद्ध कर सकते हैं। डेटा कॉलम आपके कॉलम के नामकरण के लिए है।


धन्यवाद! मैं तालिका के एक तत्व तक कैसे पहुंच सकता हूं?
एल्ब्यूस_सी

यदि आप स्तंभ उपयोग data.a को कॉल करना चाहते हैं, यदि आपने कॉलम "a" का नाम दिया है।
पिएट्रोविस्मारा

1
या यदि आप किसी एकल पंक्ति को कॉल करना चाहते हैं तो आप data.a [1] का उपयोग कर सकते हैं (यह उदाहरण कॉलम की पहली पंक्ति को कॉल करता है)
pietrovismara

महान! यह सब कुछ तय हो गया
एल्बस_सी

87

मैं उपरोक्त उत्तरों में जोड़ना चाहूंगा, आप सीधे उपयोग कर सकते हैं

df = pd.read_fwf('output_list.txt')

fwf का अर्थ है निश्चित चौड़ाई वाली स्वरूपित रेखाएँ।


38

@ पिएत्रोविस्मारा का समाधान सही है, लेकिन मैं सिर्फ जोड़ना चाहूंगा: कॉलम नाम जोड़ने के लिए एक अलग लाइन होने के बजाय, यह pd.read_csv से संभव है।

df = pd.read_csv('output_list.txt', sep=" ", header=None, names=["a", "b", "c"])


13

यदि आपके पास डेटा को कोई इंडेक्स असाइन नहीं किया गया है और आप सुनिश्चित नहीं हैं कि रिक्ति क्या है, तो आप पंडों को एक इंडेक्स असाइन करने और कई रिक्त स्थान देखने के लिए उपयोग कर सकते हैं।

df = pd.read_csv('filename.txt', delimiter= '\s+', index_col=False)

3
समान रूप से आप सीमांकक के delim_whitespace=Trueबजाय अधिक '\s+'
क्रिया

8

आप निम्न कार्य कर सकते हैं:

import pandas as pd
df = pd.read_csv('file_location\filename.txt', delimiter = "\t")

(जैसे, df = pd.read_csv ('F: \ Desktop \ ds \ text.txt', delimiter = "\ t")


6

पांडा में नवीनतम परिवर्तनों के आधार पर, आप read_csv, read_table का पदावनत कर सकते हैं:

import pandas as pd
pd.read_csv("file.txt", sep = "\t")

4

आप पाठ फ़ाइल को read_table कमांड का उपयोग करके आयात कर सकते हैं:

import pandas as pd
df=pd.read_table('output_list.txt',header=None)

लोड करने के बाद प्रीप्रोसेसिंग करना होगा


1

मैं आमतौर पर पहली डेटा पर एक नज़र डालें या बस इसे आयात और data.head (करने की कोशिश), यदि आप देखते हैं कि कॉलम \ t के साथ अलग होती है तो आप निर्दिष्ट करना चाहिए sep="\t", नहीं तो sep = " "

import pandas as pd     
data = pd.read_csv('data.txt', sep=" ", header=None)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.