我试图做的是从列“in_reply_to_user_id”(不在图片中,因为df太宽,无法容纳)与给定id具有相同值的行中获取文本,并将文本附加到列表中,然后将其放入新列中。例如,所有tweet中的“in_reply_to_user_id”列等于第一条tweet的“id”的文本都应该放在一个列表中,然后添加到数据框中名为“reples”的新列中。以下是我尝试过的一些事情:
for i in testb['in_reply_to_user_id']:
for j in test['user.id']:
if i == j:
index=testb.index()
test['replies'].append(testb['text'].iloc[index]) ```
test would be the original dataframe and testb would be a copy that i created in order to try to run the code above. it is just a copy of test.
假设原始Dataframe看起来像这样:
text user_id reply_to
0 this is reply to 3 1 3
1 this is reply to 3 2 3
2 this is reply to 2 3 2
3 this is reply to 2 4 2
4 this is reply to 1 5 1
然后通过使用df.loc()我们可以获得包含对每个文本的回复的记录:
import pandas as pd
data = [['this is reply to 3', 1, 3], ['this is reply to 3', 2, 3],['this is
reply to 2', 3, 2],['this is reply to 2', 4, 2], ['this is reply to 1', 5,1 ]]
df = pd.DataFrame(data, columns = ['text', 'user_id', 'reply_to'])
replies = []
for user_id in df.user_id:
text = df.loc[df['reply_to'] == user_id].text.values
replies.append(text)
df['replies'] = replies
生成的数据帧如下所示:
text user_id reply_to replies
0 this is reply to 3 1 3 [this is reply to 1]
1 this is reply to 3 2 3 [this is reply to 2, this is reply to 2]
2 this is reply to 2 3 2 [this is reply to 3, this is reply to 3]
3 this is reply to 2 4 2 []
4 this is reply to 1 5 1 []
这里有一个简单的解决方案,在所有行上循环。
import numpy as np
import pandas as pd
# example data
df = pd.DataFrame({'id': [1, 2, 3, 4],
'text': ['How are you?', 'Fine.', 'Okay.', 'hi'],
'in_reply_to_user_id': [4, 1, 1, 3]})
# initiate new column
df['replies'] = np.repeat(None, len(df))
# assign lists as described in the question
for i in df.index:
df.at[i, 'replies'] = list(df.text[df.in_reply_to_user_id == df.id[i]])
# show results
df
id text in_reply_to_user_id replies
0 1 How are you? 4 [Fine., Okay.]
1 2 Fine. 1 []
2 3 Okay. 1 [hi]
3 4 hi 3 [How are you?]
所以我已经初始化了一个空的熊猫数据帧,我想在这个数据帧中迭代地追加列表(或系列)作为行。最好的方法是什么?
我的清单如下: 我需要将上面列表中的数据添加到下面的列表中,其中第0行应该有值test1和test2。第1行应该有test3和test4
我有一份这种格式的清单 我想用这些信息创建一个数据框架,其中一个列名为“情绪”,另一个列名为“分数” 数据帧: 我不知道如何将我的列表转换为具有这种结构的数据格式
我需要将多个列附加到现有的spark dataframe,其中列名称在列表中给定,假设新列的值是常量,例如给定的输入列和dataframe是 并且在附加两列后,假设 col1 的常量值为“val1”,col2 的常量值为“val2”,则输出数据帧应为 我已经编写了一个函数来追加列 有没有更好的方式,更具功能性的方式去做。 谢啦
问题是:“要求用户输入其国家的详细信息,使用输入的值创建一个国家的新对象,并将其附加到数组列表的开头。” 我确实遵循了最基本的规则来防止任何错误,但是当我试图编译时。它复制了一些像日本和美国这样的物体。尝试许多不同的方法来调试和理解问题,但我找不到。
问题内容: 我需要更新表名(col1name) 如果已经有数据,我需要将其附加值’a,b,c’如果为NULL,则需要添加值’a,b,c’ 我知道有一个CONCAT参数,但是不确定SQL语法是什么。 以上正确吗? 问题答案: 试试这个查询: 请参阅此sql小提琴演示。