首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过一个占位符循环创建一个熊猫系列

通过一个占位符循环创建一个熊猫系列
EN

Stack Overflow用户
提问于 2017-07-29 23:44:27
回答 1查看 841关注 0票数 1

我希望根据一个if条件自动更改熊猫缺少值列的名称,最好使用“string_name_number”。数字应该从一个开始到最后一个缺失值结束。我已经决定将循环设置如下,以从字符串中选择数据。

但是,来自缺失列的结果(df2)保持不变。-答辩人i、jakson、答辩人i、答辩人i、jane、答辩人i、mary、.

我期望看到以下结果(df2);-应答1,jakson,被告2,被告3,jane,被告4,mary,.

请协助。

代码语言:javascript
复制
import pandas as pd  

df = pd.read_csv('232 responses.csv', sep=',',header=0, parse_dates=True, 
                 index_col='Timestamp')

missing_rows_list = list(range(0, len (df)))

for i in missing_rows_list:
    i = 1
    df2 = [df['Name (optional)']\
           .replace(np.nan, 'respondent {d[i]}'\
           .format(d=missing_rows_list)) if pd.isnull(df['Name (optional)']) \
            else df['Name (optional)'] == word in df['Name (optional)']]
    i += 1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-31 06:01:07

我认为这应该是一种更方便的方法:

代码语言:javascript
复制
df=pd.DataFrame({"a":["test1","test2","test3","test4",np.NAN],"b":["test5",np.NAN,"test7",np.NAN,"test9"]})

#Create the respondent + inex number format --> you can also save this in an extra df column if you like
a=["respondent"]*len(df.index)
b=list(df.index)
c=["{0}{1}".format(a_,b_)for a_,b_ in list(zip(a,b))]

#Replace the missing values
for i in df.columns:
    mask = df[i].isnull()
    df[i].mask(mask,c, inplace=True)

print(df)



           a          b
0      test1      test5
1      test2  response1
2      test3      test7
3      test4  response3
4  response4      test9
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45395061

复制
相关文章

相似问题

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