【问题标题】:pandas series to csv熊猫系列到 csv
【发布时间】:2018-08-16 12:28:31
【问题描述】:

我有以下熊猫系列:

0        [[1, 11283, 01, 5], [2,5, 1, 1]]
1        [[6, 33, 21, 2], [11283, 01, 5,1]] 
2        [[8430, 01, 2, 2],[2, 1, 1, 1]]

我需要将其保存为 csv,但 csv 行应该类似于以下内容:

1, 11283, 01, 5
2,5, 1, 1
6, 33, 21, 2
11283, 01, 5,1
8430, 01, 2, 2
2, 1, 1, 1

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 您有一个列表列表中的pandas.Series?
  • 是的。 pandas.series 列表列表,

标签: python pandas dataframe


【解决方案1】:

试试:

df = pd.Series([[[1, 11283, 1, 5], [2,5, 1, 1]], 
                [[6, 33, 21, 2], [11283, 1, 5,1]], 
                [[8430, 1, 2, 2],[2, 1, 1, 1]]])

df.apply(pd.Series).stack().reset_index(drop=True)

正如@jezrael、@coldspeed 和许多其他熊猫大神建议在apply(pd.Series) 上使用以下内容:

pd.DataFrame(df.values.tolist()).stack().reset_index(drop=True)

输出:

0    [1, 11283, 1, 5]
1        [2, 5, 1, 1]
2      [6, 33, 21, 2]
3    [11283, 1, 5, 1]
4     [8430, 1, 2, 2]
5        [2, 1, 1, 1]
dtype: object

【讨论】:

  • df.apply(pd.Series) 而不是,因为慢 - 检查this
  • 这么美!
  • df = pd.DataFrame(s.values.tolist()).stack().reset_index(drop=True)
  • @jezrael 谢谢,这些天我会把它钻进我的头骨。感谢您的建议。
【解决方案2】:

如果你不关心01 变成1:

df = pd.Series([[[1, 11283, 1, 5], [2,5, 1, 1]], 
                [[6, 33, 21, 2], [11283, 1, 5,1]], 
                [[8430, 1, 2, 2],[2, 1, 1, 1]]])
flat_list = [item for sublist in df.tolist() for item in sublist if item not in (',','[',']')]
pd.DataFrame(flat_list).to_csv('your_path')

【讨论】:

    猜你喜欢
    • 2017-11-03
    • 2015-05-09
    • 2020-06-03
    • 2014-06-15
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 2014-06-16
    • 2022-12-10
    相关资源
    最近更新 更多