import csv
import pandas as pd
from chardet import UniversalDetector
from تقدیر.ذریعہ_نکتہ import ذریعہ_نکتہ
from எண்ணிக்கை import எண்ணுக்கு as எ
[docs]class سی_اس_وی(ذریعہ_نکتہ):
"""
سی اس وی (``.csv``) مسل سے کوائف پڑھتا ہیے۔
"""
def __init__(خود, مسل, عرض, طول, بلندی=None, خاکے=None, تبديل_ستون=None):
super().__init__(عرض, طول, بلندی, خاکے, تبديل_ستون)
خود.مسل = مسل
@property
def متغیرات(خود):
ضابطہ = _ضابطہ_بندی(خود.مسل)
with open(خود.مسل, 'r', encoding=ضابطہ) as م:
ر = next(csv.reader(م))
return [ب for ب in [خود._نام_عمودی_ستون(س.strip()) for س in ر] if ب != 'تاریخ']
def _کوائف_بنانا(خود, سے, تک, عرض, طول, بلندی, خاکے):
کو = {}
ضابطہ = _ضابطہ_بندی(خود.مسل)
with open(خود.مسل, 'r', encoding=ضابطہ) as م:
پڑھنےوالا = csv.DictReader(م)
for ل in پڑھنےوالا:
for س in ل:
س_پا = خود._نام_عمودی_ستون(س.strip())
if س_پا not in کو:
کو[س_پا] = []
کو[س_پا].append(ل[س].strip())
return pd.DataFrame(
{م: [எ(ق) for ق in ف] for م, ف in کو.items() if م != 'تاریخ'},
index=خود._اشاریہ_پانڈا_بنانا(کو['تاریخ'])
)
def _ضابطہ_بندی(مسل):
آلہ = UniversalDetector()
with open(مسل, 'rb') as م:
for لکیر in م.readlines():
آلہ.feed(لکیر)
if آلہ.done:
break
آلہ.close()
return آلہ.result['encoding']