পান্ডায় আমার একটি ডেটাফ্রেম রয়েছে এবং আমি এর মানগুলির প্রকারগুলি কী তা নির্ধারণ করার চেষ্টা করছি। কলামটি কী ধরণের তা আমি নিশ্চিত নই 'Test'
। যাইহোক, আমি যখন দৌড়ে myFrame['Test'].dtype
, আমি পেতে;
dtype('O')
এটার মানে কি?
পান্ডায় আমার একটি ডেটাফ্রেম রয়েছে এবং আমি এর মানগুলির প্রকারগুলি কী তা নির্ধারণ করার চেষ্টা করছি। কলামটি কী ধরণের তা আমি নিশ্চিত নই 'Test'
। যাইহোক, আমি যখন দৌড়ে myFrame['Test'].dtype
, আমি পেতে;
dtype('O')
এটার মানে কি?
উত্তর:
এর অর্থ:
'O' (Python) objects
উত্স ।
প্রথম অক্ষরটি ডেটা ধরণের নির্দিষ্ট করে এবং বাকী অক্ষরগুলি ইউনিকোড ব্যতীত আইটেম প্রতি বাইটের সংখ্যা নির্দিষ্ট করে, যেখানে এটি অক্ষরের সংখ্যা হিসাবে ব্যাখ্যা করা হয়। আইটেমের আকার অবশ্যই বিদ্যমান ধরণের সাথে সামঞ্জস্য করা উচিত, বা একটি ত্রুটি উত্থাপিত হবে। সমর্থিত প্রকারগুলি একটি বিদ্যমান ধরণের হয়, বা একটি ত্রুটি উত্থাপিত হবে। সমর্থিত প্রকারগুলি হ'ল:
'b' boolean
'i' (signed) integer
'u' unsigned integer
'f' floating-point
'c' complex-floating point
'O' (Python) objects
'S', 'a' (byte-)string
'U' Unicode
'V' raw data (void)
আর একটি উত্তর সাহায্য করে যদি চেক প্রয়োজন হয় type
।
dtype('O')
ডেটাফ্রেমের ভিতরে দেখেন এর অর্থ পান্ডাস স্ট্রিং।কী dtype
?
কিছু যে জন্যে pandas
বা numpy
, অথবা উভয়, নাকি অন্য কিছু? যদি আমরা পান্ডাস কোড পরীক্ষা করি:
df = pd.DataFrame({'float': [1.0],
'int': [1],
'datetime': [pd.Timestamp('20180310')],
'string': ['foo']})
print(df)
print(df['float'].dtype,df['int'].dtype,df['datetime'].dtype,df['string'].dtype)
df['string'].dtype
এটি এর মতো আউটপুট দেবে:
float int datetime string
0 1.0 1 2018-03-10 foo
---
float64 int64 datetime64[ns] object
---
dtype('O')
আপনি dtype('O')
শেষটিকে পান্ডা বা পান্ডাস অবজেক্ট হিসাবে ব্যাখ্যা করতে পারেন যা পাইথন টাইপ স্ট্রিং, এবং এটি নম্পি string_
বা unicode_
প্রকারের সাথে মিলে যায়।
Pandas dtype Python type NumPy type Usage
object str string_, unicode_ Text
ডন কুইক্সোট গাধা হিসাবে, পান্ডাস নম্পি এবং নম্পি আপনার সিস্টেমের অন্তর্নিহিত আর্কিটেকচার বুঝতে এবং তার numpy.dtype
জন্য বর্গটি ব্যবহার করে।
ডেটা টাইপ অবজেক্টটি numpy.dtype
ক্লাসের একটি উদাহরণ যা ডেটা টাইপকে আরও সুনির্দিষ্টভাবে বোঝে :
এই প্রশ্নের প্রেক্ষাপটে dtype
উভয়ই প্যান্ড এবং নিম্পি এবং বিশেষভাবে dtype('O')
আমরা স্ট্রিংটি আশা করি belongs
ব্যাখ্যার সাথে পরীক্ষার জন্য এখানে কিছু কোড দেওয়া আছে: আমাদের কাছে অভিধান হিসাবে ডেটাসেট থাকলে
import pandas as pd
import numpy as np
from pandas import Timestamp
data={'id': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}, 'date': {0: Timestamp('2018-12-12 00:00:00'), 1: Timestamp('2018-12-12 00:00:00'), 2: Timestamp('2018-12-12 00:00:00'), 3: Timestamp('2018-12-12 00:00:00'), 4: Timestamp('2018-12-12 00:00:00')}, 'role': {0: 'Support', 1: 'Marketing', 2: 'Business Development', 3: 'Sales', 4: 'Engineering'}, 'num': {0: 123, 1: 234, 2: 345, 3: 456, 4: 567}, 'fnum': {0: 3.14, 1: 2.14, 2: -0.14, 3: 41.3, 4: 3.14}}
df = pd.DataFrame.from_dict(data) #now we have a dataframe
print(df)
print(df.dtypes)
শেষ লাইনগুলি ডেটাফ্রেম পরীক্ষা করবে এবং আউটপুটটি নোট করবে:
id date role num fnum
0 1 2018-12-12 Support 123 3.14
1 2 2018-12-12 Marketing 234 2.14
2 3 2018-12-12 Business Development 345 -0.14
3 4 2018-12-12 Sales 456 41.30
4 5 2018-12-12 Engineering 567 3.14
id int64
date datetime64[ns]
role object
num int64
fnum float64
dtype: object
সব ধরণের আলাদা dtypes
df.iloc[1,:] = np.nan
df.iloc[2,:] = None
তবে যদি আমরা সেট করার চেষ্টা করি np.nan
বা None
এটি মূল কলামটি টাইপকে প্রভাবিত করবে না। আউটপুটটি এরকম হবে:
print(df)
print(df.dtypes)
id date role num fnum
0 1.0 2018-12-12 Support 123.0 3.14
1 NaN NaT NaN NaN NaN
2 NaN NaT None NaN NaN
3 4.0 2018-12-12 Sales 456.0 41.30
4 5.0 2018-12-12 Engineering 567.0 3.14
id float64
date datetime64[ns]
role object
num float64
fnum float64
dtype: object
সুতরাং np.nan
বা None
কলামগুলি পরিবর্তন করবে না dtype
, যদি না আমরা সমস্ত কলামের সারিগুলিতে np.nan
বা সেট করি None
। সেক্ষেত্রে কলামটি যথাক্রমে হয়ে উঠবে float64
বা হবে object
।
আপনি একক সারিও সেট করার চেষ্টা করতে পারেন:
df.iloc[3,:] = 0 # will convert datetime to object only
df.iloc[4,:] = '' # will convert all columns to object
এবং এখানে লক্ষণীয়, আমরা যদি স্ট্রিংটি একটি নন স্ট্রিং কলামের মধ্যে সেট করি তবে এটি স্ট্রিং বা অবজেক্টে পরিণত হবে dtype
।
'ও' অর্থ অবজেক্টের জন্য ।
#Loading a csv file as a dataframe
import pandas as pd
train_df = pd.read_csv('train.csv')
col_name = 'Name of Employee'
#Checking the datatype of column name
train_df[col_name].dtype
#Instead try printing the same thing
print train_df[col_name].dtype
প্রথম লাইনটি ফিরে আসে: dtype('O')
মুদ্রণ বিবৃতি সহ লাইনটি নিম্নলিখিতটি দেয়: object
pandas
object
কলামগুলিতে মিশ্র মানগুলি (স্ট্রিংস, সংখ্যা, ন্যান) থাকলে অবাধে dtype ব্যবহার করে ।