如何将具有可变数量分隔符的文本文件转换为数据框?
How to convert a text file with variable number of delimiters into a dataframe?
如何将下面的文本数据转换成数据框?还有一种方法可以只在某些列上使用爆炸函数吗?比如 data3、data4 只忽略前两个数据点 data1、data2
Attribute1,data1,data2
Attribute2,data1,data2,data3,data4
Attribute3,data1,data2,data3
Attribute4,data1,data2,data3,data4,data5,data6
数据框的文本输出应该是这样的:
Attribute1|data1|data2
Attribute2|data1|data2|data3|data4
Attribute3|data1|data2|data3
Attribute4|data1|data2|data3|data4|data5|data6
dataframe explode 的输出应该是这样的:
Attribute2|data3
Attribute2|data4
Attribute3|data3
Attribute4|data3
Attribute4|data4
Attribute4|data5
Attribute4|data6
df = pd.read_csv('test.txt', header=None, sep=';')
df = df[0].str.split(',', expand=True)
df.set_index(0, inplace=True)
df = df.stack().droplevel(1)
print(df)
输出:
0
Attribute1 data1
Attribute1 data2
Attribute2 data1
Attribute2 data2
Attribute2 data3
Attribute2 data4
Attribute3 data1
Attribute3 data2
Attribute3 data3
Attribute4 data1
Attribute4 data2
Attribute4 data3
Attribute4 data4
Attribute4 data5
Attribute4 data6
如何将下面的文本数据转换成数据框?还有一种方法可以只在某些列上使用爆炸函数吗?比如 data3、data4 只忽略前两个数据点 data1、data2
Attribute1,data1,data2
Attribute2,data1,data2,data3,data4
Attribute3,data1,data2,data3
Attribute4,data1,data2,data3,data4,data5,data6
数据框的文本输出应该是这样的:
Attribute1|data1|data2
Attribute2|data1|data2|data3|data4
Attribute3|data1|data2|data3
Attribute4|data1|data2|data3|data4|data5|data6
dataframe explode 的输出应该是这样的:
Attribute2|data3
Attribute2|data4
Attribute3|data3
Attribute4|data3
Attribute4|data4
Attribute4|data5
Attribute4|data6
df = pd.read_csv('test.txt', header=None, sep=';')
df = df[0].str.split(',', expand=True)
df.set_index(0, inplace=True)
df = df.stack().droplevel(1)
print(df)
输出:
0
Attribute1 data1
Attribute1 data2
Attribute2 data1
Attribute2 data2
Attribute2 data3
Attribute2 data4
Attribute3 data1
Attribute3 data2
Attribute3 data3
Attribute4 data1
Attribute4 data2
Attribute4 data3
Attribute4 data4
Attribute4 data5
Attribute4 data6