相关疑难解决方法(0)

Pandas仅使用列名创建空DataFrame

我有一个动态的DataFrame工作正常,但是当没有数据要添加到DataFrame时,我得到一个错误.因此,我需要一个解决方案来创建一个只有列名称的空DataFrame.

现在我有这样的事情:

df = pd.DataFrame(columns=COLUMN_NAMES) # Note that there are now row data inserted.
Run Code Online (Sandbox Code Playgroud)

PS:列名称仍然会出现在DataFrame中非常重要.

但是当我像这样使用它时,我会得到类似的东西:

Index([], dtype='object')
Empty DataFrame
Run Code Online (Sandbox Code Playgroud)

"空DataFrame"部分很好!但我需要仍然显示列,而不是索引.

编辑:

我发现了一件重要的事情:我正在使用Jinja2将此DataFrame转换为PDF,因此我正在调用一种方法,首先将其输出为HTML,如下所示:

df.to_html()
Run Code Online (Sandbox Code Playgroud)

我认为这就是列丢失的地方.

Edit2:总的来说,我遵循了这个例子:http://pbpython.com/pdf-reports.html.css也来自链接.这就是我将数据帧发送到PDF的方法:

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"])
Run Code Online (Sandbox Code Playgroud)

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: []
Run Code Online (Sandbox Code Playgroud)

这似乎是合理的,但如果我打印出template_vars:

'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>'
Run Code Online (Sandbox Code Playgroud)

而且似乎已经缺少了这些列. …

python dataframe pandas

112
推荐指数
3
解决办法
23万
查看次数

将列标头添加到pandas数据框..但是,即使标头尺寸相同,NAN也会保留所有数据

我正在尝试将列标题添加到我已使用Pandas解析为数据帧的csv文件中。

dfTrades = pd.read_csv('pnl1.txt',delim_whitespace=True,header=None,);
dfTrades = dfTrades.drop(dfTrades.columns[[3,4,6,8,10,11,13,15,17,18,25,27,29,32]], axis=1)     # Note: zero indexed
dfTrades = dfTrades.set_index([dfTrades.index]);
df = pd.DataFrame(dfTrades,columns=['TradeDate',
                                      'TradeTime',
                                      'CumPnL',
                                      'DailyCumPnL',
                                      'RealisedPnL',
                                      'UnRealisedPnL',
                                      'CCYCCY',
                                      'CCYCCYPnLDaily',
                                      'Position',
                                      'CandleOpen',
                                      'CandleHigh',
                                      'CandleLow',
                                      'CandleClose',
                                      'CandleDir',
                                      'CandleDirSwings',
                                      'TradeAmount',
                                      'Rate',
                                      'PnL/Trade',
                                      'Venue',
                                      'OrderType',
                                      'OrderID'
                                      'Code']);


print df
Run Code Online (Sandbox Code Playgroud)

数据的结构为:

01/10/2015 05:47.3  190 190 -648 838 EURNOK -648 0  0 611   -1137   -648 H 2     -1000000   9.465   -648    INTERNAL    IOC 287 AS
Run Code Online (Sandbox Code Playgroud)

熊猫的回报是:

  TradeDate  TradeTime  CumPnL  DailyCumPnL  RealisedPnL  UnRealisedPnL  \
0            NaN        NaN     NaN          NaN          NaN            NaN   ... …
Run Code Online (Sandbox Code Playgroud)

python csv pandas

6
推荐指数
1
解决办法
3万
查看次数

从 csv 文件读取时,pandas 添加列

我想使用 pandas 从 CSV 文件中读取read_csv。CSV 文件没有列名。当我使用 Pandas 读取 CSV 文件时,第一行默认设置为列。但是当我使用时df.columns = ['ID', 'CODE'],第一行不见了。我想添加,而不是替换。

df = pd.read_csv(CSV)
df

    a   55000G707270
0   b   5l0000D35270
1   c   5l0000D63630
2   d   5l0000G45630
3   e   5l000G191200
4   f   55000G703240


df.columns=['ID','CODE']
df

    ID          CODE
0   b   5l0000D35270
1   c   5l0000D63630
2   d   5l0000G45630
3   e   5l000G191200
4   f   55000G703240
Run Code Online (Sandbox Code Playgroud)

python csv pandas

2
推荐指数
1
解决办法
9144
查看次数

标签 统计

pandas ×3

python ×3

csv ×2

dataframe ×1