我是Python的新手,我试图做以下事情:
df[row].split()
但是,我找不到如何创建pd.DataFrame
其中:
我试着填充我的数据框,就像我在早期的R脚本中所做的那样,但它不起作用,即
for x in range(0, len(tweets)):
words[,x] = pd.DataFrame(data=tweets[x].split())
我发现[,]
在数据帧中不像R一样运行,但我甚至无法找到如何填充DataFrame
而不将列指定为数组而不是定义总列数。到目前为止,我只是成功创建了一个单词列表。
所以,我的问题如下:
words
DataFrame?n*m
数据框?df[row].split()
?答案 0 :(得分:1)
这可能不是最佳解决方案,但它可以满足您的需求:
import pandas as pd
import numpy as np
data = [
['This is a sentence.'],
['This is also a sentence.'],
['Hi.']
]
data = pd.DataFrame(data)
max_len = 0
for index, row in data.iterrows():
length = len(row.values[0].split())
if length > max_len:
max_len = length
words = pd.DataFrame(index=range(data.shape[0]), columns=range(max_len))
for i in range(data.shape[0]):
j = 0
for word in data.iloc[i].values[0].split():
words.iloc[i, j] = word
j += 1
print(words)
输出:
0 1 2 3 4
0 This is a sentence. NaN
1 This is also a sentence.
2 Hi NaN NaN NaN NaN
答案 1 :(得分:0)
我刚发现另一个 - 类似于提议的方式:
tweets = pd.DataFrame(data.tweet)
max_words = 0
for i in range(0, len(tweets)):
if max_words < len(tweets.iloc[i,0].split()):
max_words = len(tweets.iloc[i,0].split())
words = pd.DataFrame(columns= range(len(tweets)), index= range(max_words))
for i in range(0, max_words):
words.iloc[i] = tweets.tweet.str.split().str[i]