python - 基于单列 reshape Pandas 数据框

标签 python pandas

我需要根据特定列中的列表“ reshape ”数据框,例如(见下文),我需要 reshape 最后一列中的列表,使其中只有 k 元素单行。对于k = 2

df = 

   c1  c2  c3           c4
  aa   bb  cc  [1,2,3,4,5]  

需要到达:

df_1 = 

  c1   c2   c3     c4
  aa   bb   cc  [1,2]
  aa   bb   cc  [3,4]
  aa   bb   cc    [5]

当然,可以通过循环和附加新数据帧来实现,但我对更多 Pandasian 的实现方式感兴趣,因为我的数据集非常大。有什么想法吗?

最佳答案

IIUC

df=df.reindex(df.index.repeat(df.c4.str.len()))# reindex to flatten your dataframe 
df.c4=df.c4.iloc[0]# assign the list value to one column
df
Out[334]:
   c1  c2  c3  c4
0  aa  bb  cc   1
0  aa  bb  cc   2
0  aa  bb  cc   3
0  aa  bb  cc   4
0  aa  bb  cc   5
df['key']=np.arange(len(df))//2# k=2

df.groupby(['c1','c2','c3','key']).c4.agg(lambda x : tuple(x.tolist()))# groupby get the expected output 
Out[352]: 
c1  c2  c3  key
aa  bb  cc  0      (1, 2)
            1      (3, 4)
            2        (5,)
Name: c4, dtype: object

关于python - 基于单列 reshape Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52541052/

相关文章:

python - 在 Python 2.7 中为列表中的变量赋值

python - 将excel文件转换为python以频率

Python Pandas : apply a function to dataframe. 滚动()

python - 在 pandas 中设置现有 DataFrame 的 MultiIndex

python - 如何在 python pandas 中找到具有多索引的两个数据框列的最小值?

python - 如何在数据框上应用散点图和折线图进行比特币情绪分析?

python - 机器学习工具 Docker 镜像大小问题

python - 是否可以使用 Jinja2 模板对文档中的参数进行逆向工程?

python - 是否可以使用 python 复制单元格的 Excel 公式而不是值?

python - 高效的ip查找