小编bme*_*llo的帖子

有没有办法只复制Pandas DataFrame的结构(而不​​是数据)?

我从某个地方收到了一个DataFrame,并希望创建另一个具有相同数量和列和行(索引)名称的DataFrame.例如,假设原始数据框被创建为

import pandas as pd
df1 = pd.DataFrame([[11,12],[21,22]], columns=['c1','c2'], index=['i1','i2'])
Run Code Online (Sandbox Code Playgroud)

我通过显式定义列和名称来复制结构:

df2 = pd.DataFrame(columns=df1.columns, index=df1.index)    
Run Code Online (Sandbox Code Playgroud)

我不想复制数据,否则我就可以写了df2 = df1.copy().换句话说,在创建df2之后,它必须只包含NaN元素:

In [1]: df1
Out[1]: 
    c1  c2
i1  11  12
i2  21  22

In [2]: df2
Out[2]: 
     c1   c2
i1  NaN  NaN
i2  NaN  NaN
Run Code Online (Sandbox Code Playgroud)

有没有更惯用的方式呢?

python dataframe pandas

50
推荐指数
5
解决办法
3万
查看次数

如何在 tkinter 上隐藏和显示画布项目?

我知道这一点packpack_forget可用于显示或隐藏小部件。哪些是画布上项目的等效命令?

注意:最好保留完整的物品信息,包括它的位置。pack/不是这种情况pack_forget,您需要在使用 pack 时再次通知位置。

python tkinter tkinter-canvas

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

如何在pandas.read_csv上的标题之前跳过未知数量的空行?

我想从csv文件中读取数据帧,其中标题不在第一行.例如:

In [1]: import pandas as pd

In [2]: import io

In [3]: temp=u"""#Comment 1
   ...: #Comment 2
   ...: 
   ...: #The previous line is empty
   ...: Header1|Header2|Header3
   ...: 1|2|3
   ...: 4|5|6
   ...: 7|8|9"""

In [4]: df = pd.read_csv(io.StringIO(temp), sep="|", comment="#", 
   ...:                  skiprows=4).dropna()

In [5]: df
Out[5]: 
   Header1  Header2  Header3
0        1        2        3
1        4        5        6
2        7        8        9

[3 rows x 3 columns]
Run Code Online (Sandbox Code Playgroud)

上面代码的问题是我现在没有在标题之前存在多少行,因此,我不能skiprows=4像我在这里那样使用.

我知道我可以遍历文件,就像从非修复头开始从csv读取pandas数据帧一样.

我正在寻找的是一个更简单的解决方案,比如pandas.read_csv忽略任何空行并将第一个非空行作为标题.

python csv file-io data-import pandas

4
推荐指数
1
解决办法
6581
查看次数