জাভাস্ক্রিপ্টে পাইথন পান্ডাস সমতুল্য


96

এই সিএসভি উদাহরণ সহ:

   Source,col1,col2,col3
   foo,1,2,3
   bar,3,4,5

আমি পান্ডাকে যে স্ট্যান্ডার্ড পদ্ধতি ব্যবহার করি তা হ'ল:

  1. পার্স সিএসভি

  2. একটি ডেটা ফ্রেমে কলামগুলি নির্বাচন করুন ( col1এবংcol3 )

  3. কলাম প্রক্রিয়া (যেমন বার্ষিক গড় মান col1এবংcol3 )

পান্ডসের মতো এমন কোনও জাভাস্ক্রিপ্ট লাইব্রেরি আছে কি?


6
আপনি কী নিয়ে যাচ্ছেন তা আমাদের জানান। এটি আমাদের অনেকের কাছে একটি গুরুত্বপূর্ণ প্রশ্ন।
আহমেদ ফাসিহ

উত্তর:


133

সব উত্তর ভাল। আমার উত্তরের প্রত্যাশাটি ব্যাপক (অর্থাত্ সমস্ত বিকল্পের তালিকা দেওয়ার চেষ্টা করে )। আমি আশা করি যে কোনও পছন্দ করতে কোনও মানদণ্ড সহ এই উত্তরটি ফিরে আসব এবং সংশোধন করব।

আমি আশা করি যে এখানে যে কেউ পরিচিত হবে d3d3জাভাস্ক্রিপ্টে ডেটা পরিচালনা করার জন্য "সুইস আর্মি ছুরি" খুব দরকারী, যেমন pandasপাইথনের পক্ষে সহায়ক। তাহলে আপনি হয়তো d3ঘন ঘন মত ব্যবহার pandas, এমনকি যদি d3হয় ঠিক DataFrame / পান্ডাস প্রতিস্থাপন না (অর্থাত d3একই এপিআই নেই; d3নেই Series/ DataFrameযা আচরণ মত pandas)

আহমেদের উত্তরটি ব্যাখ্যা করে যে কীভাবে কিছু ডেটা ফ্রেমের কার্যকারিতা অর্জন করতে ডি 3 ব্যবহার করা যেতে পারে এবং নীচের কিছু লাইব্রেরি শিখুনজেডাটা ব্যবহার করে d3এবং এর মতো জিনিস দ্বারা অনুপ্রাণিত হয়েছিল lodash

ডেটা ফ্রেম-কেন্দ্রিক-বৈশিষ্ট্যগুলির জন্য, আমি জেএস লাইব্রেরিগুলিতে অভিভূত হয়েছি যা সহায়তা করে। আপনার মুখোমুখি হতে পারে এমন কয়েকটি বিকল্পের একটি দ্রুত তালিকা এখানে। আমি তাদের মধ্যে এখনও বিশদে বিশদটি পরীক্ষা করে দেখিনি (বেশিরভাগ ক্ষেত্রে আমি গুগল + এনপিএম অনুসন্ধানের সমন্বয় পেয়েছি)।

আপনি যে বিভিন্ন ধরণের সাথে কাজ করতে পারেন তা ব্যবহার করতে সাবধান হন; কিছু হ'ল নোড.জেস ওরফে সার্ভার-সাইড জাভাস্ক্রিপ্ট, কিছু ব্রাউজারের সাথে সামঞ্জস্যপূর্ণ ওরফে ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট। কিছু টাইপস্ক্রিপ্ট হয়।

  • পান্ডাস-জেএস
    • থেকে STEEL এবং Feras 'উত্তরগুলি
    • "পান্ডাস.জেএস একটি ওপেন সোর্স (পরীক্ষামূলক) লাইব্রেরি যা পাইথন পান্ডাস লাইব্রেরিটির নকল করে Im এটি নম্পপি লজিক্যাল সমতুল্য হিসাবে ইমট্যটেবল.জেএস-র উপর নির্ভর করে s "
  • ডেটাফ্রেম-জেএস
    • "ডেটাফ্রেম-জেএস জাভাস্ক্রিপ্ট এবং ডেটাসায়েন্সের জন্য একটি অপরিবর্তনীয় ডেটা কাঠামো সরবরাহ করে, ডেটাফ্রেম, যা স্কোয়েল এবং ফাংশনাল প্রোগ্রামিং দ্বারা অনুপ্রাণিত এপিআই দিয়ে সারি এবং কলামগুলিতে কাজ করতে দেয়।"
  • তথ্য জালিয়াতি
  • jsdataframe
    • "জাসদাটাফ্রেমে একটি জাভাস্ক্রিপ্ট ডেটা র্যাংলিং গ্রন্থাগার যা আর এবং পাইথন পান্ডাসে ডেটা ফ্রেম কার্যকারিতা দ্বারা অনুপ্রাণিত হয়" "
  • ডেটাফ্রেম
    • "দলবদ্ধ করে এবং হ্রাস করে ডেটা অন্বেষণ করুন।"

তারপরে এই প্রশ্নে আসার পরে, এখানে অন্যান্য উত্তরগুলি পরীক্ষা করে আরও অনুসন্ধান করার পরে আমি এই বিকল্পগুলি পেয়েছি:

  • জেএস এ অ্যাপাচি তীর
    • ব্যবহারকারী ব্যাক 2 বেসিক্সের পরামর্শকে ধন্যবাদ:
    • "এ্যাপাচি তীর ফ্ল্যাট এবং নেস্টেড ডেটার পাত্রে মত টেবিল ভেক্টর এবং এনকোডিং জন্য স্তম্ভাকার মেমরির বিন্যাস স্পেসিফিকেশন হয়। এ্যাপাচি তীর জন্য বড় ইন-মেমোরি স্তম্ভাকার তথ্য (স্পার্ক, উঠতি মান পান্ডাস , ড্রিল, Graphistry, ...)"
  • পর্যবেক্ষণযোগ্য
    • প্রথম নজরে, JSআইপিথন / জুপিটার "নোটবুক" এর বিকল্প বলে মনে হচ্ছে
    • পর্যবেক্ষণযোগ্য পৃষ্ঠাটি প্রতিশ্রুতি দেয়: "প্রতিক্রিয়াশীল প্রোগ্রামিং", একটি "সম্প্রদায়", একটি "ওয়েব প্ল্যাটফর্ম" এ
    • এখানে 5 মিনিটের পরিচয় দেখুন
  • রেললাইন ( রুফসের উত্তর থেকে )
    • আমি ডেটাফ্রেমের এপিআইতে জোর দেওয়ার প্রত্যাশা করেছি, যা পান্ডাস নিজেই চেষ্টা করে আর থেকে সংরক্ষণ করুন প্রতিটি আর ফাংশন এর প্রতিস্থাপন / উন্নতি / চিঠিপত্র নথি
    • পরিবর্তে আমি একটি জোর recline এর উদাহরণ জোর দেওয়া খুঁজে ডোমে ডেটা পাওয়ার jQuery উপায়এটির (দুর্দান্ত) মাল্টিভিউ (ইউআই), যার জন্য jQuery প্রয়োজন হয় না তবে এর জন্য একটি ব্রাউজারের প্রয়োজন নেই! আরও উদাহরণ
    • ... বা এর এমভিসি-ইশ স্থাপত্যের উপর জোর দেওয়া ; ব্যাক-এন্ড স্টাফ সহ (যেমন ডাটাবেস সংযোগ)
    • আমি সম্ভবত খুব কঠোর হয়ে উঠছি; সর্বোপরি, পান্ডাস সম্পর্কে একটি সুন্দর জিনিস হ'ল এটি কীভাবে সহজেই ভিজ্যুয়ালাইজেশন তৈরি করতে পারে; বাক্সের বাইরে.
  • জেএস-ডেটা
    • সত্যিই আরও একটি ওআরএম ! অধিকাংশই তার মডিউল বিভিন্ন তথ্য মিলা স্টোরেজ প্রশ্ন ( js-data-mongodb, js-data-redis, js-data-cloud-datastore), বাছাই, ফিল্টারিং, ইত্যাদি
    • প্লাস-সাইডটি নোড.জেজে প্রথম অগ্রাধিকার হিসাবে কাজ করে; "নোড.জেএস এবং ব্রাউজারে কাজ করে।"
  • মিসো (থেকে আরেকটি পরামর্শ রূফের )
  • আলাসকিউএল
    • "আলাএসকিউএল" জাভাস্ক্রিপ্টের জন্য একটি ওপেন সোর্স এসকিউএল ডাটাবেস যা সম্পর্কিত সম্পর্কিত ডেটা এবং স্কিমহীন ডেটা উভয়ের জন্য ক্যোয়ারী গতি এবং ডেটা উত্স নমনীয়তার উপর জোর দিয়ে থাকে। এটি আপনার ব্রাউজারে, নোড.জেএস এবং কর্ডোভাতে কাজ করে। "
  • কিছু চিন্তার পরীক্ষা:

আমি আশা করি এই পোস্টটি একটি সম্প্রদায়ের উইকিতে পরিণত হতে পারে এবং বিভিন্ন মানদণ্ডের বিপরীতে মূল্যায়ন করতে (যেমন উপরের বিভিন্ন বিকল্পের তুলনা করুন) যেমন:

  • পান্ডের আর এর তুলনায় সমালোচনা
    • কর্মক্ষমতা
    • কার্যকারিতা / নমনীয়তা
    • ব্যবহারে সহজ
  • আমার নিজস্ব পরামর্শ
    • পান্ডাস / ডেটাফ্রেম এপিআই এর সাথে মিল
    • বিশেষত তাদের প্রধান বৈশিষ্ট্যগুলিতে হিট
    • ডেটা-বিজ্ঞানের জোর> ইউআই জোর
    • Jupyter (ইন্টারেক্টিভ নোটবুক), ইত্যাদির মতো অন্যান্য সরঞ্জামগুলির সাথে সংমিশ্রণে প্রদর্শিত ইন্টিগ্রেশন

জেএস গ্রন্থাগার কখনও না পারে এমন কিছু জিনিস (তবে এটি পারে?)


4
এই দুর্দান্ত পর্যালোচনার জন্য ধন্যবাদ। আমি পান্ডাস ডেটাফ্রেম এবং এসকিউএল উভয়ই জানি। জেএস এসকিউএল ডাটাবেস বনাম ডেটাফ্রেম ব্যবহার করে জেএস ব্যবহারের সুবিধা (এবং অসুবিধাগুলি) কী কী?
tordis

@ মোলোতো এটি একটি দুর্দান্ত প্রশ্ন, তবে জেএস এসকিউএল ডাটাবেসগুলির সাথে আমার খুব বেশি অভিজ্ঞতা নেই (যদিও তারা দেখতে দুর্দান্ত)। সাধারণভাবে আমি অনুমান করব যে ডেটাফ্রেম-ধরণের পদ্ধতিগুলি খালি মানগুলি অনুমান করার মতো আরও "ডেটা র্যাংলিং" / "ডেটা-বিজ্ঞান" ফোকাসড ফাংশনকে সমর্থন করবে; ম্যাট্রিক্স গুণ করা ইত্যাদি etc. যেখানে একটি (জেএস) এসকিউএল রিলেশনাল স্টাফগুলিতে বেশি মনোনিবেশিত: অনুসন্ধান করা, বাছাই করা, ফিল্টারিং। অবশ্যই ওভারল্যাপ হবে; ডেটাফ্রেমে এসকিউএল এর মতো কিছু পরিসংখ্যানীয় ফাংশন এবং ইত্যাদি অন্তর্ভুক্ত থাকতে পারে, ঠিকঠাক এবং ফিল্টার যোগ দিতে পারে? অন্য কারও ধারনা আছে?
লাল মটর

4
সত্য যে অনেক বিকল্প আছে বিরক্তিকর। বরং সম্প্রদায়টি কেবলমাত্র একটি বিষয়ে মনোনিবেশ করুন এবং এটি ভাল করুন।
ক্লাদিউ ক্রিঙ্গা

4
(এ্যারো জেএস লেখক এখানে) @ ক্লাউডিউক্রেনা আমি হতাশা বুঝতে পারি। প্রাথমিকভাবে আমরা নোড / ব্রাউজার এবং আরও প্রচলিত বিগ-ডেটা স্ট্যাকের মধ্যে পার্থক্য সরিয়ে দেওয়ার প্রয়াসে অ্যারোজেএস লিখেছিলাম এবং আমরা এখন পর্যন্ত দুর্দান্ত আইপিসি / স্ট্রিমিং আদিমগুলিতে সবচেয়ে বেশি বিনিয়োগ করেছি। পরবর্তী পদক্ষেপ হিসাবে, আমরা আরও জেএস লিব (টেনসরফ্লো, ডি 3, ইত্যাদি) এর সাথে সংহত করা শুরু করতে চাই এবং পিআরগুলি সর্বদা স্বাগত। বিকল্প পন্থা হ'ল জেপিএমসির দৃষ্টিভঙ্গি প্রকল্পের মতো জিনিস , যা তীরের টেবিলগুলি গ্রাস এবং উত্পাদন করতে অ্যারোজেএস ব্যবহার করে।
ptaylor

4
জাভাস্ক্রিপ্টে সমান পান্ডাস সমেত ডেটাফ্রেমের একীকরণের জন্য কার্যকারিতা আছে কি?
ফানি বিক্রন্থ

9

আমি জাভাস্ক্রিপ্টের জন্য ডেটা র‌্যাংলিং লাইব্রেরিতে কাজ করছি যা ডেটা-ফোরজ বলে। এটি লিনকিউ এবং পান্ডাস দ্বারা অনুপ্রাণিত।

এটি এটির মতো ইনস্টল করা যেতে পারে:

npm install --save data-forge

আপনার উদাহরণটি এইভাবে কাজ করবে:

var csvData = "Source,col1,col2,col3\n" +
    "foo,1,2,3\n" +
    "bar,3,4,5\n";

var dataForge = require('data-forge');
var dataFrame = 
    dataForge.fromCSV(csvData)
        .parseInts([ "col1", "col2", "col3" ])
        ;

যদি আপনার ডেটা কোনও CSV ফাইলে থাকে আপনি এটিকে এ জাতীয় লোড করতে পারতেন:

var dataFrame = dataForge.readFileSync(fileName)
    .parseCSV()
    .parseInts([ "col1", "col2", "col3" ])
    ;

selectসারিগুলিকে রূপান্তর করতে আপনি পদ্ধতিটি ব্যবহার করতে পারেন ।

আপনি ব্যবহার করে একটি কলামটি বের করতে পারেন getSeriesতারপরে selectসেই কলামটিতে মানগুলি রূপান্তর করতে পদ্ধতিটি ব্যবহার করুন ।

আপনি এই জাতীয় ডেটা ফ্রেমের বাইরে আবার আপনার ডেটা পাবেন:

var data = dataFrame.toArray();

একটি কলাম গড় করতে:

 var avg = dataFrame.getSeries("col1").average();

এর সাথে আরও অনেক কিছু করতে পারেন।

আপনি এনএমপি তে আরও ডকুমেন্টেশন পেতে পারেন ।


8

সিভিয়েট নিম্নলিখিতটি কেবলমাত্র ডি 3 ভি 3 এর ক্ষেত্রে প্রযোজ্য, এবং সর্বশেষতম ডি 4 ভি 4 নয়!

আমি d3.js এর আংশিক , এবং যদিও এটি পান্ডাদের সম্পূর্ণ প্রতিস্থাপন হবে না, আপনি যদি এর দৃষ্টান্ত শিখতে কিছুটা সময় ব্যয় করেন তবে এটি আপনার জন্য আপনার সমস্ত ডেটা র্যাংলিংয়ের যত্ন নিতে সক্ষম হবে। (এবং আপনি যদি ব্রাউজারে ফলাফল প্রদর্শন করতে চান তবে এটি আদর্শভাবে এটি উপযুক্ত)

উদাহরণ। আমার সিএসভি ফাইল data.csv:

name,age,color
Mickey,65,black
Donald,58,white
Pluto,64,orange

একই ডিরেক্টরিতে, index.htmlনিম্নলিখিত ধারণকারী একটি তৈরি করুন :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <title>My D3 demo</title>

    <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
  </head>
  <body>

      <script charset="utf-8" src="demo.js"></script>
  </body>
</html>

এবং demo.jsনিম্নলিখিত ফাইল সহ একটি ফাইল:

d3.csv('/data.csv',

       // How to format each row. Since the CSV file has a header, `row` will be
       // an object with keys derived from the header.
       function(row) {
         return {name : row.name, age : +row.age, color : row.color};
       },

       // Callback to run once all data's loaded and ready.
       function(data) {
         // Log the data to the JavaScript console
         console.log(data);

         // Compute some interesting results
         var averageAge = data.reduce(function(prev, curr) {
           return prev + curr.age;
         }, 0) / data.length;

         // Also, display it
         var ulSelection = d3.select('body').append('ul');
         var valuesSelection =
             ulSelection.selectAll('li').data(data).enter().append('li').text(
                 function(d) { return d.age; });
         var totalSelection =
             ulSelection.append('li').text('Average: ' + averageAge);
       });

ডিরেক্টরিতে, চালাও এবং বয়স এবং তাদের গড়ের একটি সাধারণ তালিকা দেখতে আপনার ব্রাউজারে http: // লোকালহোস্ট: 8181python -m SimpleHTTPServer 8181 খুলুন ।

এই সাধারণ উদাহরণটি ডি 3 এর কয়েকটি প্রাসঙ্গিক বৈশিষ্ট্য দেখায়:

  • অনলাইন ডেটা ইনজেক্ট করার জন্য দুর্দান্ত সমর্থন ( সিএসভি , টিএসভি, জেএসএন, ইত্যাদি)
  • ডেটা র্যাংলিং স্মার্টগুলি বেকড হয়েছে
  • ডেটা-চালিত ডিওএম ম্যানিপুলেশন (কারও মাথা ঘিরে রাখা সম্ভবত সবচেয়ে কঠিন জিনিস): আপনার ডেটা ডিওএম উপাদানগুলিতে রূপান্তরিত হয়।

4
কেবল ভবিষ্যতের নবাবীদের সহায়তা করার জন্য - উপরের নির্দেশাবলী আর d3 ভি 4 এর জন্য বৈধ নয়। ভাবেন ম্যাপিং স্টেজটি এখন ডেটা কলব্যাকের মধ্যে সম্পন্ন হয়েছে যেমন github.com/d3/d3-dsv/blob/master/README.md#csvParseRows
swyx

@swyx মাথা আপ জন্য ধন্যবাদ, আপনি উদাহরণ সংশোধন করতে পারেন এবং উত্তর হিসাবে পোস্ট করতে পারেন?
আহমেদ ফসিহ

@ আহমেদফাসিহহ প্রত্যেকের উপকারের জন্য আপনার নিজের পোস্টটি সংশোধন করা উচিত। এছাড়াও, swyx আপনার পোস্ট সম্পাদনা করতে যথেষ্ট খ্যাতি নেই।
কার্লস

@ কার্লস অ্যালকোলেয়া আমি শীর্ষে একটি বড় দাবি অস্বীকার করেছি, দুঃখিত আমি এখনই বর্তমান এপিআই তে গতিতে উঠার মতো সময় পাই না 😿
আহমেদ ফ্যাসিহ

@ আহমেদফ্যাসিহ ভাল যে এটি আগের চেয়ে ভাল :) ধন্যবাদ!
কার্লস

5

নীচে পাইথন নিম্পি এবং পান্ডাস রয়েছে

`` `

import numpy as np
import pandas as pd

data_frame = pd.DataFrame(np.random.randn(5, 4), ['A', 'B', 'C', 'D', 'E'], [1, 2, 3, 4])

data_frame[5] = np.random.randint(1, 50, 5)

print(data_frame.loc[['C', 'D'], [2, 3]])

# axis 1 = Y | 0 = X
data_frame.drop(5, axis=1, inplace=True)

print(data_frame)

`` `

একইটি জাভাস্ক্রিপ্ট * এ অর্জন করা যেতে পারে [ numjs কেবল Node.js দিয়ে কাজ করে ] তবে D3.js এর কাছে অনেক উন্নত ডেটা ফাইল সেট বিকল্প রয়েছে। নামজ এবং পান্ডস-জেএস উভয়ই এখনও চলছে ...

import np from 'numjs';
import { DataFrame } from 'pandas-js';

const df = new DataFrame(np.random.randn(5, 4), ['A', 'B', 'C', 'D', 'E'], [1, 2, 3, 4])

// df
/*

          1         2         3         4
A  0.023126  1.078130 -0.521409 -1.480726
B  0.920194 -0.201019  0.028180  0.558041
C -0.650564 -0.505693 -0.533010  0.441858
D -0.973549  0.095626 -1.302843  1.109872
E -0.989123 -1.382969 -1.682573 -0.637132

*/


5

পান্ডাস.জে এই মুহুর্তে একটি পরীক্ষামূলক গ্রন্থাগার, তবে এটি হুড অপরিবর্তনীয় জেজেস এবং নম্পপাই যুক্তির অধীনে ব্যবহার করা খুব আশাব্যঞ্জক বলে মনে হচ্ছে, উভয় ডেটা অবজেক্ট সিরিজ এবং ডেটা ফ্রেম রয়েছে ..


4
দেখে মনে হচ্ছে লাইব্রেরিতে দু'বছরেরও বেশি সময় ধরে প্রতিশ্রুতিবদ্ধ হয়নি এবং মনে হচ্ছে অনেকগুলি সমস্যা রয়েছে। আমি 'খুব প্রতিশ্রুতিবদ্ধ' বলব না।
জার্থুর

4

পুনঃটুইট করুন আপনার অপেক্ষা শেষ হয়েছে। দানফো.জেএস-তে স্বাগত জানাই যা জাভাস্ক্রিপ্ট লাইব্রেরির মতো পান্ডাস যেমন টেনসরফ্লো.জেএস-তে নির্মিত এবং বাক্সের বাইরে টেনেসরকে সমর্থন করে। এর অর্থ আপনি ড্যানফো ডেটা স্ট্রাকচারকে টেনেসরে রূপান্তর করতে পারেন। এবং আপনি গ্রুপবাই, মার্জ, যোগদান, প্লট করা এবং অন্যান্য ডেটা প্রক্রিয়াকরণ করতে পারেন।


3

আমি মনে করি নিকটতম জিনিসটি লাইব্রেরিগুলির মতো:

বিশেষত রেকলাইনের একটি ডেটা্যাসেট অবজেক্ট রয়েছে যার কাঠামোটি পান্ডাস ডেটা ফ্রেমের সাথে কিছুটা অনুরূপ। এরপরে এটি আপনাকে "ভিউজ" এর সাথে কোনও ডেটা গ্রিড, গ্রাফিং, মানচিত্র ইত্যাদির সাথে সংযুক্ত করার অনুমতি দেয় ভিউগুলি সাধারণত ব্রীড ভিজ্যুয়ালাইজেশন লাইব্রেরি যেমন ডি 3, ফ্লোট, স্লিকগ্রিড ইত্যাদির চারপাশে পাতলা মোড়ক থাকে Views

রেকলাইনের জন্য এখানে একটি উদাহরণ রয়েছে:

// কিছু ডেটা লোড করুন
var dataset = recline.Model.Dataset ({
  রেকর্ডস: [
    {মান: 1, তারিখ: '2012-08-07'},
    {মান: 5, খ: '2013-09-07'}
  ]
  // পরিবর্তে সিএসভি ডেটা লোড করুন
  // (এবং রেকলাইনের আরও অনেক ডেটা উত্স প্রকারের জন্য সমর্থন রয়েছে)
  // ইউআরএল: 'আমার-স্থানীয়-সিএসভি-ফাইল। সিএসভি',
  // ব্যাকএন্ড: 'সিএসভি'
});

// আপনার HTML থেকে দর্শকের জন্য একটি উপাদান পান
var $ el = $ ('# ডেটা-দর্শক');

var allInOneDataViewer = নতুন পুনরুক্তি.ভিউ.মલ્ટিয়াভিউ ({
  মডেল: ডেটাসেট,
  এল: $ এল
});
// আপনার নতুন ডেটা ভিউয়ার লাইভ হবে!

1

জাভাস্ক্রিপ্টে CSV পার্স করা বেশ সহজ কারণ প্রতিটি লাইনের ইতিমধ্যে একটি জাভাস্ক্রিপ্ট অ্যারে রয়েছে। আপনি যদি নিজের সিএসভিকে স্ট্রিংগুলির একটি অ্যারে (প্রতি লাইনে এক) এ লোড করেন তবে মানগুলির সাথে অ্যারের অ্যারে লোড করা বেশ সহজ:

var pivot = function(data){
    var result = [];
    for (var i = 0; i < data.length; i++){
        for (var j=0; j < data[i].length; j++){
            if (i === 0){
                result[j] = [];
            }
            result[j][i] = data[i][j];
        }
    }
    return result;
};

var getData = function() {
    var csvString = $(".myText").val();
    var csvLines = csvString.split(/\n?$/m);

    var dataTable = [];

    for (var i = 0; i < csvLines.length; i++){
        var values;
        eval("values = [" + csvLines[i] + "]");
        dataTable[i] = values;
    }

    return pivot(dataTable);
};

তারপর getData() কলাম দ্বারা মানগুলির একটি বহুমাত্রিক অ্যারে প্রদান করে।

আমি এটি একটি জেএসফিডেলে প্রদর্শন করেছি জন্য ।

অবশ্যই আপনি এটি সহজেই এটি করতে পারবেন না যদি আপনি ইনপুটটিতে বিশ্বাস না করেন - যদি আপনার ডেটাতে এমন কোনও স্ক্রিপ্ট থাকতে পারে যা প্রদর্শিত হতে পারে, ইত্যাদি etc.


আমি জানি আপনি আপনার উত্তরে একটি সতর্কতা রেখেছিলেন, তবে সুরক্ষা দৃষ্টিকোণ থেকে এই পদ্ধতিটি কতটা খারাপ তা আমি সত্যিই যথেষ্ট চাপ দিতে পারি না।
xApple

যদি সে ইনপুটটিতে বিশ্বাস না করে তবে এটি কেবল সুরক্ষার দৃষ্টিকোণ থেকে খারাপ। উদাহরণস্বরূপ, যদি তিনি কোনও স্কুল প্রকল্প করছেন যা তিনি ইতিমধ্যে নিজের ইনপুট ফাইলগুলি জানেন (কারণ তিনি বা তাঁর শিক্ষক একটি নির্দিষ্ট ফর্ম্যাটে তাদের আগে সময়ের আগে সরবরাহ করেছেন), এটি একটি কমপ্যাক্ট, সহজ এবং সুস্পষ্ট সমাধান। তিনি তার ইনপুটগুলির উত্স সম্পর্কে কোনও প্রসঙ্গ দেননি, কেবল সহজ প্রসেসিংয়ের জন্য সিএসভি পড়ার উপায় চান না।
স্টিভ কে

1

1 লাইনে একটি বিদ্যমান শিরোনাম ধরে নিয়ে এখানে একটি গতিশীল পন্থা দেওয়া হচ্ছে d3.js। সিএসভি লোড হয়েছে ।

function csvToColumnArrays(csv) {

    var mainObj = {},
    header = Object.keys(csv[0]);

    for (var i = 0; i < header.length; i++) {

        mainObj[header[i]] = [];
    };

    csv.map(function(d) {

        for (key in mainObj) {
            mainObj[key].push(d[key])
        }

    });        

    return mainObj;

}


d3.csv(path, function(csv) {

    var df = csvToColumnArrays(csv);         

});

তারপরে আপনি একই সাথে আর, পাইথন বা মতলব ডেটা ফ্রেমের সাথে ডেটাগুলির প্রতিটি কলাম অ্যাক্সেস করতে পারবেন df.column_header[row_number]

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.