【发布时间】:2021-03-13 04:50:38
【问题描述】:
我是 python 中的 Pandas 新手。我有一个数据框,其中有 2 个键,每个键 15 行,1 列,如下所示
1
key1/1 0.5
key1/2 0.5
key1/3 0
key1/4 0
key1/5 0.6
key1/6 0.7
key1/7 0
key1/8 0
key1/9 0
key1/10 0.5
key1/11 0.5
key1/12 0.5
key1/13 0
key1/14 0.5
key1/15 0.5
key2/1 0.4
key2/2 0.2
key2/3 0
key2/4 0
key2/5 0.1
key2/6 0.2
key2/7 0
key2/8 0
key2/9 0.3
key2/10 0.2
key2/11 0
key2/12 0.5
key2/13 0
key2/14 0
key2/15 0.5
我想迭代数据框的行,因此每次遇到“零”时,它都会创建一个新列,如下所示
1 2 3 4
key1/1 0.5 0.6 0.5 0.5
key1/2 0.5 0.7 0.5 0.5
key1/3 nan nan 0.5 nan
key1/4 nan nan nan nan
1 2 3 4 5
key2/1 0.4 0.1 0.3 0.5 0.5
key2/2 0.2 0.2 0.2 nan nan
key2/3 nan nan nan nan nan
key2/4 nan nan nan nan nan
我已尝试以下代码尝试仅迭代“key1”
df2=pd.Dataframe[]
for row in df['key1'].index:
new_df['keyl'][row] == df['keyl'][row]
if df['keyl'][row] == 0:
new_df['key1'].append(df2,ignore_index=True)
显然它不起作用,请发送一些帮助。理想情况下,我想修改相同的数据框而不是创建新的数据框。谢谢
【问题讨论】:
-
显然,这比你说的要多。当您点击 0 时,您希望跳过所有以下零,并让下一个非零开始一个新列。是吗?
-
为什么 0.6 分配给 key1/1 ?当它是 key1/5 的一部分时
-
是的,没错@TimRoberts
-
我想以这种方式重塑我的数据框@Pygirl
-
然后检查我的完整解决方案
标签: python pandas dataframe for-loop