Как можно выставить сетку между стобцами датафрейма пандас?
I have a dataframe with columns. I need to visualise my df like in the screenshot
(У меня есть датафрейм с колоннами, Мне нужно визуализировать данные как на скрине ниже.)
And this is my output
(Это мой вывод, который я получаю просто делая print(df))
And my question is how to add a grid in pandas and hide the index column?
(Мой вопрос состоит в том, как добавить сетку между полями и скрыть колонну ИНДЕКС?) I need to visualise it in CMD(Windows)/Terminal(MacOS)
(Визуализация должна отображаться в Командной строке или Терминале МакОС)
Входные данные вводятся через командную строку и парсятся через argparse в коде Пример входных данных:
deposit --client="John Jones" --amount=100 --description="ATM Deposit"
withdraw --client="John Jones" --amount=100 --description="ATM Deposit"
show_bank_statement --client="John Jones" --since="2021-01-01 00:00:00" --till="2021-02-01 00:00:00"
(deposit, withdraw, show_bank_statement) - методы класса, которые я вызываю для выполнения (пополнения счета, снятия со счета и вывода транзакций за определенный период) соответственно В частности, именно последний метод выводит в командную строку данные приведенные в скриншоте выше. И именно эти данные нужно привести к виду первого скриншота
def show_bank_statement(self, client, since, till):
df = DF[(since < DF['Date']) & (DF['Date'] < till)]
DF_ind = DF.index[DF.Date >= since][0]
total_with, total_dep, last_balance = pd.to_numeric(df['Withdrawals'], errors='coerce').sum(
), pd.to_numeric(df['Deposits'], errors='coerce').sum(), list(df['Balance'])[-1]
df = df.append({'Date': '',
'Description': 'Totals',
'Withdrawals': total_with,
'Deposits': total_dep,
'Balance': last_balance},
ignore_index=True)
df.loc[0] = ['', 'Previous balance', '', '', DF['Balance'][DF_ind]]
pd.set_option('display.max_colwidth', None)
pd.set_option('display.float_format', '${:.2f}'.format)
t = from_csv(StringIO(df.to_csv(index=False)))
print(t)
Это участок кода на вывод данных, где since и till - даты для установки диапозона вывода
Попытался использовать предложенные варианты и менять форматы данных, так ничего и не добился. Но спасибо за ответы, все варианты я учту для будущих работ, так как впервые сталкиваюсь с визуализацией таблиц определенным способом
Ответы (1 шт):
Пример:
In [171]: df
Out[171]:
A B C
0 1 2 3
1 4 5 6
2 7 8 9
In [172]: from prettytable import from_csv
In [173]: from io import StringIO
In [174]: t = from_csv(StringIO(df.to_csv(index=False)))
In [175]: print(t)
+---+---+---+
| A | B | C |
+---+---+---+
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
+---+---+---+