如何在Python中从dataframe读取单个值?

2024-05-16 12:00:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一种方法,从Python中的一个大数据帧中只读取一个值。 我的项目中有两个数据表。你知道吗

一个是这样的:

Company ID  Company  201512  201511  ...  199402  199401
1234        abc      1.1     0.8     ...  2.1     -0.9
.
.
.
4321        cba      2.1     -0.4    ...  0.3     -0.1

大约有260个月和10000家公司。我需要逐个检查他们的月报表,看看那个数据点后面是否有36个有效数据点。这意味着不存在“0”或“NaN”。如果有36个有效的数据点,我需要将这36个数据点与另一个表中列出的7个因子进行回归。你知道吗

另一个表如下所示:

Month    Factor1     Factor2     ...     Factor6     Factor7  
201512   -0.4        1.1         ...     2.1         1.2
.
.
.
199401   0.1         0.2         ...     0.3         0.4

现在我的问题是,我无法从表1中一次只加载一个值并为其创建循环。有人能告诉我吗?你知道吗


Tags: 数据项目方法id报表公司nancompany
2条回答

可以使用以下代码对行进行迭代:

for index, row in df.iterrows():

然后index将是行的索引,您可以使用row["Company"]访问列。你知道吗

你不需要for循环。你知道吗

假设0是一个有效的月度回报,并且在Company之后只有36列,您可以很容易地找到所有具有有效月度回报数据的公司:

df = df[df.notnull().all(1)]

如果出于某种未知的原因,您想摆脱0,可以先进行替换:

df = df[df.replace(0, np.nan).notnull().all(1)]

编辑评论:

你可以这样做:

cols = df.columns
first_col = get_first_return_col(df)
for i in range(first_col, len(cols)):
    df = df[df[cols[i : i + 36]].notnull().all(1)]
    run_regression(df[cols[i]])

相关问题 更多 >