首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中更改dataframe中的列值?

如何在python中更改dataframe中的列值?
EN

Stack Overflow用户
提问于 2018-01-10 06:09:23
回答 2查看 143关注 0票数 2

我用python创建了一个数据帧,

代码语言:javascript
复制
import pandas as pd
d = {'col1': ["day1", "7:00", "8:00","9:00", "10:00", "11:00",
               "day2", "7:00", "8:00","9:00", "10:00", "11:00",
               "day3", "7:00", "8:00","9:00", "10:00", "11:00"],
      'col2': [0, 4.1, 3, 3.5, 45.1, 16.9,
               0, 6.5, 4, 9.8, 33.9, 19.8,
               0, 6.9, 2.5, 7, 81.1, 13.8]}
df = pd.DataFrame(data=d)
print(df)
  col1  col2
0    day1   0.0
1    7:00   4.1
2    8:00   3.0
3    9:00   3.5
4   10:00  45.1
5   11:00  16.9
6    day2   0.0
7    7:00   6.5
8    8:00   4.0
9    9:00   9.8
10  10:00  33.9
11  11:00  19.8
12   day3   0.0
13   7:00   6.9
14   8:00   2.5
15   9:00   7.0
16  10:00  81.1
17  11:00  13.8

例如,我想将col1中的所有这些时间线数据更改为天

代码语言:javascript
复制
 col1  col2
    0    day1   0.0
    1    day1   4.1
    2    day1   3.0
    3    day1   3.5
    4    day1  45.1
    5    day1  16.9
    6    day2   0.0
    7    day2   6.5
    8    day2   4.0
    9    day2   9.8
    10   day2  33.9
    11   day2  19.8
    12   day3   0.0
    13   day3   6.9
    14   day3   2.5
    15   day3   7.0
    16   day3  81.1
    17   day3  13.8

这只是一个样本数据集。因此,我希望有一个简单的通用答案来解决这个问题。例如,如果我们有1000天的数据集..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-10 06:19:21

代码语言:javascript
复制
df.col1=df.col1.where(df.col1.str.isalnum()).ffill()
df
Out[242]: 
    col1  col2
0   day1   0.0
1   day1   4.1
2   day1   3.0
3   day1   3.5
4   day1  45.1
5   day1  16.9
6   day2   0.0
7   day2   6.5
8   day2   4.0
9   day2   9.8
10  day2  33.9
11  day2  19.8
12  day3   0.0
13  day3   6.9
14  day3   2.5
15  day3   7.0
16  day3  81.1
17  day3  13.8
票数 3
EN

Stack Overflow用户

发布于 2018-01-10 06:15:08

尝试丢弃时间戳并向前填充:

代码语言:javascript
复制
# Remove timestamps 
discard_mask = ~df.col1.str.startswith('day')
df.loc[discard_mask, "col1"] = np.nan

# Forward fill
df.ffill()

#     col1  col2
# 0   day1   0.0
# 1   day1   4.1
# 2   day1   3.0
# 3   day1   3.5
# 4   day1  45.1
# 5   day1  16.9
# 6   day2   0.0
# 7   day2   6.5
# 8   day2   4.0
# 9   day2   9.8
# 10  day2  33.9
# 11  day2  19.8
# 12  day3   0.0
# 13  day3   6.9
# 14  day3   2.5
# 15  day3   7.0
# 16  day3  81.1
# 17  day3  13.8
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48177371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档