python - 将空行转换为 Pandas 中的列

标签 python pandas

除了第一列中的值外,我有一行是空的。我想将所有这些行转换成这样的列:

x_df = pd.DataFrame({'A':['John','ex1','ex2','Joe','qz1','qz2','qz3'],
                 'val1':[ '',10,5,'',80,10,10],
                  'val2':[ '',20,6,'',90,10,1],
                  'val3':[ '',30,7,'',100,10,0]})


Out[222]: 
         A   val1 val2 val3
     0  john               
     1  ex1   10   20   30 
     2  ex2   5    6    7  
     3  joe                
     4  qz1   80   90   100
     5  qz2   10   10   10 
     6  qz3   10   1    0 

预期输出:

x_df =
     A  val1  val2  val3 name
  0 ex1   10   20   30   john
  1 ex2   5    6    7    john
  2 qz1   80   90   100  joe
  3 qz2   10   10   10   joe
  4 qz3   10   1     0   joe

最佳答案

这是我会做的:

# mask the empty rows
# you can use x_df.iloc[:, 1:] instead
s = x_df.filter(like='val').ne('').any(1)

# name column
# mask(s) selects the empty rows
# ffill fills the other rows
x_df['name'] = x_df['A'].mask(s).ffill()

# filter
x_df[s]

输出:

     A val1 val2 val3  name
1  ex1   10   20   30  John
2  ex2    5    6    7  John
4  qz1   80   90  100   Joe
5  qz2   10   10   10   Joe
6  qz3   10    1    0   Joe

关于python - 将空行转换为 Pandas 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57806725/

相关文章:

python - 如何创建空列表列表

python - 如何将记录器级别作为字符串值

python - MongoDB:如何确定特定值不存在

Python:NGINX+FLASK 的 uWSGI 配置

python - 基于条件的索引范围

python - 改变100%堆积条形图中的颜色python

python - Pandas Row 均值为 NaN

python - 按列对 pandas 数据框进行切片,显示除提供的列之外的所有内容

python - 在Python中保留二进制矩阵中值的顺序

Python pandas read_table 将零转换为 NaN