Python 使用pd.read\u剪贴板加载跨多行的列的数据帧

Python 使用pd.read\u剪贴板加载跨多行的列的数据帧,python,pandas,dataframe,clipboard,Python,Pandas,Dataframe,Clipboard,给定以下数据集: 是否有任何方法可以在不必手动将所有内容移动到同一行的情况下以预期格式加载此类数据?其中一种方法是基于\n\n进行拆分,然后创建单独的数据帧,然后将其连接起来。i、 e #Bit of code from https://stackoverflow.com/questions/45740537/copying-multiindex-dataframes-with-pd-read-clipboard def read_clipboard_split(index_names_row

给定以下数据集:


是否有任何方法可以在不必手动将所有内容移动到同一行的情况下以预期格式加载此类数据?

其中一种方法是基于
\n\n
进行拆分,然后创建单独的数据帧,然后将其连接起来。i、 e

#Bit of code from https://stackoverflow.com/questions/45740537/copying-multiindex-dataframes-with-pd-read-clipboard

def read_clipboard_split(index_names_row=None, **kwargs):
    encoding = kwargs.pop('encoding', 'utf-8')

    # only utf-8 is valid for passed value because that's what clipboard
    # supports
    if encoding is not None and encoding.lower().replace('-', '') != 'utf8':
        raise NotImplementedError(
            'reading from clipboard only supports utf-8 encoding')

    from pandas import compat, read_fwf
    from pandas.io.clipboard import clipboard_get
    from pandas.io.common import StringIO

    data = clipboard_get()
    items = data.split("\n\n")
    k = []
    for i in items:
        k.append(read_fwf(StringIO(i), **kwargs))
    df = pd.concat(k,axis=1)
    return df

read_clipboard_split()
样本运行:

user \ 0 b80344d063b5ccb3212f76538f3d9e43d87dca9e 1 b80344d063b5ccb3212f76538f3d9e43d87dca9e 2 b80344d063b5ccb3212f76538f3d9e43d87dca9e 3 b80344d063b5ccb3212f76538f3d9e43d87dca9e 4 b80344d063b5ccb3212f76538f3d9e43d87dca9e rating 0 1 1 2 2 1 3 1 4 1 用户\ 0 b80344d063b5ccb3212f76538f3d9e43d87dca9e 1 b80344d063b5ccb3212f76538f3d9e43d87dca9e 2 b80344d063b5ccb3212f76538f3d9e43d87dca9e 3 b80344d063b5ccb3212f76538f3d9e43d87dca9e 4 b80344d063b5ccb3212f76538f3d9e43d87dca9e 评级 0 1 1 2 2 1 3 1 4 1 输出:

Unnamed: 0 user \ Unnamed: 0 rating 0 0 b80344d063b5ccb3212f76538f3d9e43d87dca9e 0 1 1 1 b80344d063b5ccb3212f76538f3d9e43d87dca9e 1 2 2 2 b80344d063b5ccb3212f76538f3d9e43d87dca9e 2 1 3 3 b80344d063b5ccb3212f76538f3d9e43d87dca9e 3 1 4 4 b80344d063b5ccb3212f76538f3d9e43d87dca9e 4 1 未命名:0用户\n未命名:0评级 0 b80344d063b5ccb3212f76538f3d9e43d87dca9e 0 1 1 b80344d063b5ccb3212f76538f3d9e43d87dca9e 2 2 b80344d063b5ccb3212f76538f3d9e43d87dca9e 2 1 3 b80344d063b5ccb3212f76538f3d9e43d87dca9e 3 1 4 b80344d063b5ccb3212f76538f3d9e43d87dca9e 4 1
连我都有这个问题。要将所有内容移动到一行是一项艰巨的工作。要将此…@coldspeed更改为我的解决方案,您有什么建议吗?似乎生成了一些虚假的列。是的,有必要对数据进行一点清理。 Unnamed: 0 user \ Unnamed: 0 rating 0 0 b80344d063b5ccb3212f76538f3d9e43d87dca9e 0 1 1 1 b80344d063b5ccb3212f76538f3d9e43d87dca9e 1 2 2 2 b80344d063b5ccb3212f76538f3d9e43d87dca9e 2 1 3 3 b80344d063b5ccb3212f76538f3d9e43d87dca9e 3 1 4 4 b80344d063b5ccb3212f76538f3d9e43d87dca9e 4 1