【问题标题】:Using Python to populate Pandas Dataframe with spare CSV data使用 Python 用备用 CSV 数据填充 Pandas Dataframe
【发布时间】:2020-04-07 17:23:22
【问题描述】:

我有一个分隔文本文件,如下所示:

foo_14:14896|foo_23:17988|foo_16:1611|foo_5:14729|foo_6:13008|foo_2:19548|foo_8:2565
foo_18:13236|foo_18:6127|foo_14:5996
foo_4:12561|foo_24:20010|foo_15:20227|foo_6:3489|foo_8:19129|foo_1:2589|foo_25:5204|foo_19:18113|foo_3:20030|foo_16:12739|foo_5:5494  
foo_23:3606|foo_13:22588|foo_5:15104|foo_12:3307|foo_16:2039|foo_14:21537|foo_1:13178|foo_20:19090|foo_2:1140   
foo_5:10620|foo_21:11142|foo_22:13379|foo_1:16132|foo_10:9330|foo_23:13913|foo_6:8314|foo_13:4967    
foo_13:4891|foo_5:22715|foo_2:12098|foo_8:18634|foo_23:1341|foo_4:13995|foo_16:2923|foo_10:13663|foo_7:22939|foo_14:16711|foo_25:17824  
foo_22:8180|foo_1:11974|foo_7:6660|foo_17:17839|foo_10:3605|foo_8:22439|foo_6:15494|foo_11:17924|foo_18:17351|foo_20:16627|foo_14:9223|foo_13:2538|foo_16:19077 
foo_12:11381|foo_24:541|foo_12:13106|foo_7:6459|foo_11:6398|foo_14:23127|foo_9:15701    

我正在寻找填充 Pandas DF,其中 foo_14、foo_23 等的不同值最终是列标签,而在 : 该单元格的特定数据之前的值。文本文件的每一行代表 DF 中的一个新行。是否有任何示例可以指向我以引导我使用编码解决方案。非常感谢。

比利时

【问题讨论】:

标签: python-3.x pandas csv dataframe sparse-matrix


【解决方案1】:

试试:

df = pd.read_csv("text.txt",names=['text'],header=None)
data = df['text'].str.split("|")
names=[  y.split(':') for x in data for y in x]
ds=pd.DataFrame(names)
ds = ds.pivot(columns=0).fillna('')

Source

【讨论】:

  • 非常接近,谢谢。但是,每个条目现在都在它自己的行上。有没有办法让 foo 14、23、16、5、6、2 和 8 都在自己的行上?
  • 有可能
  • 如何去做这件事?
  • groupby 转置它并使用相同的逻辑。
  • 我不太熟悉,我们如何将上面的代码重写为 groupby 并转置?
猜你喜欢
  • 1970-01-01
  • 2022-01-17
  • 2019-04-26
  • 2023-03-19
  • 2015-02-14
  • 2023-01-04
  • 2023-03-14
  • 2017-10-14
  • 1970-01-01
相关资源
最近更新 更多