我有一个大型的txt文件,格式如下:
0
1
2
3
4
La situacion es preocupante
5
6
Radio es parte de la vida
7
Dejare de querer muy pronto
我需要生成类似于以下内容的熊猫数据框:
Texto
0 NaN
1 NaN
2 NaN
3 NaN
4 La situacion es preocupante
5 NaN
6 Radio es parte de la vida
7 Dejare de querer muy pronto
使用以下代码,我得到的输出不正确:
import pandas as pd
data = pd.read_csv("nohup.out",sep="\\n")
0
0 1
1 2
2 3
3 4
4 La situacion es preocupante
5 5
6 6
7 Radio es parte de la vida
8 7
9 Dejare de querer muy pronto
谢谢您的时间
答案 0 :(得分:1)
您可以像这样使用DataFrame.replace:
df['0'].replace(to_replace=r'^\d*$', value=np.nan, regex=True)
0 NaN
1 NaN
2 NaN
3 NaN
4 La situacion es preocupante
5 NaN
6 NaN
7 Radio es parte de la vida
8 NaN
9 Dejare de querer muy pronto
尽管您可能需要整理输入文件以获取所需的内容。
答案 1 :(得分:0)
您正在读取没有标题的CSV。在这种情况下,您可以在导入数据框时指定列名称。
此外,我想您需要将数字值替换为null。 请尝试以下操作:
import pandas as pd
data = pd.read_csv("C:/Test/list.txt", names=['Texto']) # read csv with header 'Texto', you don't need to specify separator
print (data)
Out[74]:
Texto
0 0
1 1
2 2
3 3
4 4
5 La situacion es preocupante
6 5
7 6
8 Radio es parte de la vida
9 7
10 Dejare de querer muy pronto
这是默认结果。现在,要用NaN替换数字,请尝试:
data['Texto'] = data['Texto'].str.replace('\d+', 'NaN')
print (data)
Out[76]:
Texto
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 La situacion es preocupante
6 NaN
7 NaN
8 Radio es parte de la vida
9 NaN
10 Dejare de querer muy pronto
编辑:如@jezrael所述,将'\ d'更改为\ d +',以在下面的代码中包含多个数字:
data['Texto'] = data['Texto'].str.replace('\d+', 'NaN')