首页 > 解决方案 > Python Pandas Dataframe 回车和换行问题

问题描述

我正在从无法共享的 API 中读取数据。

从 API 读取后,我有一个dataframe看起来像这样的:

col_1     col_2
1         data
2         data
3         data
Steve
4         data
5         data

我希望“Steve”行中的所有内容都与前一行连接。

我怎样才能做到这一点?导入数据时存在某种回车/换行问题。

有什么建议么?

Expected Output:

    col_1     col_2
    1         data
    2         data
    3         data + Steve
    4         data
    5         data

我通过这样做将我的结果从 API 转换为数据框:

results = requesgs.get(url, auth, headers, data)
results_data = results.content

rawData = pd.read_csv(io.StringIO(results_data.decode("utf-8")))

标签: pythonpandasdataframe

解决方案


我的假设是使该行与前一个合并的条件是 col_2 中的值为空。该条件可以根据您的具体情况进行更改。

f = pd.isnull(data.loc[:,"col_2"])
data.loc[:,"col_2"] = ["{:s} + {:s}".format(str(x), str(y))
                       if z else str(x)
                       for x, y, z in 
                       zip(data.loc[:,"col_2"], data.loc[:,"col_1"].shift(-1), f.shift(-1, fill_value=False))
                      ]

data = data.loc[~f,:].reset_index(drop=True)

我需要创建系列 f 因为将同时用于:

  1. 将“不完整”行与之前的行合并
  2. 合并完成后过滤掉不完整的行

推荐阅读