পান্ডারা কেবল কলামের নাম দিয়ে খালি ডেটাফ্রেম তৈরি করে


151

আমার একটি ডায়নামিক ডেটা ফ্রেম রয়েছে যা সূক্ষ্মভাবে কাজ করে, তবে যখন ডেটা ফ্রেমে কোনও ডেটা যুক্ত করার দরকার নেই তখন আমি একটি ত্রুটি পাই। এবং তাই কেবলমাত্র কলামের নাম দিয়ে খালি ডেটা ফ্রেম তৈরি করতে আমার একটি সমাধান দরকার need

আপাতত আমার কাছে এরকম কিছু রয়েছে:

df = pd.DataFrame(columns=COLUMN_NAMES) # Note that there are now row data inserted.

PS: এটি গুরুত্বপূর্ণ যে কলামের নামগুলি এখনও একটি ডেটা ফ্রেমে প্রদর্শিত হবে।

তবে আমি যখন এটি এটি ব্যবহার করি তখন ফলাফল হিসাবে আমি এরকম কিছু পাই:

Index([], dtype='object')
Empty DataFrame

"খালি ডেটা ফ্রেম" অংশটি ভাল! তবে সূচক জিনিসটির পরিবর্তে আমার এখনও কলামগুলি প্রদর্শন করা দরকার।

সম্পাদনা:

একটি গুরুত্বপূর্ণ বিষয় যা আমি জানতে পেরেছিলাম: আমি এই ডেটাফ্রেমটিকে জিনজা 2 ব্যবহার করে একটি পিডিএফ রূপান্তর করছি, সুতরাং আমি প্রথমে এটির মতো এইচটিএমএলে আউটপুট দেওয়ার জন্য একটি পদ্ধতি কল করছি:

df.to_html()

কলামগুলি এখানেই হারিয়ে যায় বলে আমি মনে করি।

সম্পাদনা 2: সাধারণভাবে, আমি এই উদাহরণটি অনুসরণ করেছি: http://pbpython.com/pdf-reports.html । সিএসএস লিঙ্কটি থেকেও। আমি পিডিএফে ডেটা ফ্রেম প্রেরণে এটিই করি:

env = Environment(loader=FileSystemLoader('.'))
template = env.get_template("pdf_report_template.html")
template_vars = {"my_dataframe": df.to_html()}

html_out = template.render(template_vars)
HTML(string=html_out).write_pdf("my_pdf.pdf", stylesheets=["pdf_report_style.css"])

Edit3:

আমি যদি তৈরি হওয়ার পরে ডেটা ফ্রেমটি প্রিন্ট করে থাকি তবে আমি অনুসরণটি পাই:

[0 rows x 9 columns]
Empty DataFrame
Columns: [column_a, column_b, column_c, column_d, 
column_e, column_f, column_g, 
column_h, column_i]
Index: []

এটি যুক্তিসঙ্গত বলে মনে হচ্ছে, তবে আমি যদি টেমপ্লেট_ভারগুলি মুদ্রণ করি:

'my_dataframe': '<table border="1" class="dataframe">\n  <tbody>\n    <tr>\n      <td>Index([], dtype=\'object\')</td>\n      <td>Empty DataFrame</td>\n    </tr>\n  </tbody>\n</table>'

এবং মনে হচ্ছে কলামগুলি ইতিমধ্যে অনুপস্থিত।

E4: আমি নিম্নলিখিত মুদ্রণ যদি:

print(df.to_html())

আমি ইতিমধ্যে নিম্নলিখিত ফলাফল পেয়েছি:

<table border="1" class="dataframe">
  <tbody>
    <tr>
      <td>Index([], dtype='object')</td>
      <td>Empty DataFrame</td>
    </tr>
  </tbody>
</table>

নীচের এখন আপনার জন্য কাজ করে? যদি না হয়, আপনি এই ধরনের ইত্যাদি পাইথন সংস্করণ, পান্ডাস সংস্করণ, যেমন আপনার পরিবেশ সম্পর্কে অধিক বিবরণের প্রদান করা উচিত
মার্কাস ভি

আমি পাইথন v3.4, পান্ডাস v0.13.1
ই মুউলি

1
হাই এরিক, আপনার E4-এ যা আছে তা আমি পুনরুত্পাদন করতে পারি না। আমি যদি এটি করি তবে মুদ্রণটি আমার নীচের মতো দেখাচ্ছে। আপনি আপনার পান্ডাস সংস্করণ আপডেট করতে পারেন? কারণ আপনার বয়স বরং পুরানো (আমি 0.20.1 এ আছি)।
মার্কাস ভি।

1
ধন্যবাদ, হালনাগাদ পান্ডাস কাজ করেছেন!
ই মুউলি

উত্তর:


190

আপনি কলামের নাম বা একটি সূচক সহ একটি খালি ডেটা ফ্রেম তৈরি করতে পারেন:

In [4]: import pandas as pd
In [5]: df = pd.DataFrame(columns=['A','B','C','D','E','F','G'])
In [6]: df
Out[6]:
Empty DataFrame
Columns: [A, B, C, D, E, F, G]
Index: []

অথবা

In [7]: df = pd.DataFrame(index=range(1,10))
In [8]: df
Out[8]:
Empty DataFrame
Columns: []
Index: [1, 2, 3, 4, 5, 6, 7, 8, 9]

সম্পাদনা করুন: .t_html এর সাথে আপনার সংশোধনীর পরেও আমি পুনরুত্পাদন করতে পারি না। এই:

df = pd.DataFrame(columns=['A','B','C','D','E','F','G'])
df.to_html('test.html')

উত্পাদন:

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>A</th>
      <th>B</th>
      <th>C</th>
      <th>D</th>
      <th>E</th>
      <th>F</th>
      <th>G</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

আমি যদি মূল প্রশ্নটি সম্পাদন করি তবে তা সাহায্য করে। ই: আবার সম্পাদিত।
ই মুউলি

9

আপনি কি এই জাতীয় কিছু খুঁজছেন?

    COLUMN_NAMES=['A','B','C','D','E','F','G']
    df = pd.DataFrame(columns=COLUMN_NAMES)
    df.columns

   Index(['A', 'B', 'C', 'D', 'E', 'F', 'G'], dtype='object')


এছাড়াও, আমি চেষ্টা করার পরে আমার কলামের নামগুলি হারাতে চাই না। এটি এইচটিএমএল টেবিল বিন্যাসে রয়েছে।
লিন্ডা

3

df.to_html() একটি কলাম পরামিতি আছে।

to_html()পদ্ধতিতে কলামগুলি কেবল পাস করুন ।

df.to_html(columns=['A','B','C','D','E','F','G'])
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.