繁体   English   中英

从两个系列(索引和列)构造 Pandas Dataframe 时如何指定默认值?

[英]How to specify default value when constructing Pandas Dataframe from two series (index and columns)?

我正在尝试构建一个 boolean 二维数组设置为 False 的初始值。 以下代码默认将其设置为 True:

import pandas as pd
from datetime import date

date_start = date(2022, 1, 1)
date_end = date(2022, 8, 24)
valid_dates = pd.bdate_range(date_start, date_end)
cols = range(0,4)
df = pd.DataFrame(index=valid_dates, columns=cols, dtype='bool')

我知道我可以执行以下操作来将值替换为 False,但这需要更长的时间:

df = df.replace(df, False)

我的实际列要大得多,例如~500 列。 有没有办法将 dataframe 初始化为 False?

谢谢@ivanp

这是使用我之前的示例和@ivanp 的解决方案将 dataframe 设置为 false 的工作版本

import pandas as pd
import numpy as np 
from datetime import date

date_start = date(2022, 1, 2)
date_end = date(2022, 8, 24)
valid_dates = pd.bdate_range(date_start, date_end)
cols = range(0, 500)
df = pd.DataFrame(data = np.full((len(valid_dates), len(cols)), False), index=valid_dates, columns=cols)
print(df)
import pandas as pd
import numpy as np 

def makefalse_numpy():
    return pd.DataFrame(np.full((500, 500), False))

%timeit makefalse_numpy

output:

10.8 ns ± 0.0466 ns per loop (mean ± std. dev. of 7 runs, 100000000 loops each)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM